// JavaScript Document

// javascript for the phone contact //

function changeCountry()
{
	var nowSelect = document.getElementById("sc").value;
	if (nowSelect!="" )
	{    
	if (nowSelect=="Other countries")
	{
		setCookie("country",nowSelect);
		window.location="/en/email-mio-technology.htm";
	}
	else
	{
		var divnum = getElementsByClassName("contact-result","div");
		for(i=0;i<divnum.length;i++)
		{
		divnum[i].style.display="none";
		}
		document.getElementById(nowSelect).getElementsByTagName("div")[0].style.display="";
		setCookie("country",nowSelect);
		//alert(document.getElementsByName(nowSelect));
	}
	}
}
function changeDefault()
{
	var divnum = getElementsByClassName("contact-result","div");
	for(i=0;i<divnum.length;i++)
	{
		divnum[i].style.display="none";
	}     
	//divnum[0].style.display="";
}


function columnHighlight(model_string){

	if(ul == document.getElementById("left_mininav")){
		(ul.style.display="none");
		var lis = ul.getElementsByTagName('li');
		for (var li=0; li < lis.length; li++){
			if(lis[li].id != "" && model_string.toLowerCase().search(lis[li].id.toLowerCase()) != -1){
				lis[li].className="on";
				return;
				}
		}
	}

	if(ul == document.getElementById("left_nav_java")){
		(ul.style.display="");
		var lis = ul.getElementsByTagName('li');
		for (var li=0; li < lis.length; li++){
			if(lis[li].id != "" && model_string.toLowerCase().search(lis[li].id.toLowerCase()) != -1){
				lis[li].className="on";
				document.getElementById("left_nav_java_li-1").className="";
				return;
				}
		}
	}

}


/*	EventCache Version 1.0
	Copyright 2005 Mark Wubben

	Provides a way for automagically removing events from nodes and thus preventing memory leakage.
	See <http://novemberborn.net/javascript/event-cache> for more information.

	This software is licensed under the CC-GNU LGPL <http://creativecommons.org/licenses/LGPL/2.1/>
*/

/*	Implement array.push for browsers which don't support it natively.
	Please remove this if it's already in other code */
    if(typeof Array.prototype.push != "function"){
        Array.prototype.push = ArrayPush;
        function ArrayPush(value){
            this[this.length] = value;
        }
    };

/*	Event Cache uses an anonymous function to create a hidden scope chain.
	This is to prevent scoping issues. */
var EventCache = function(){
	var listEvents = [];
	
	return {
		listEvents : listEvents,
	
		add : function(node, sEventName, fHandler, bCapture){
			listEvents.push(arguments);
		},
	
		flush : function(){
			var i, item;
			for(i = listEvents.length - 1; i >= 0; i = i - 1){
				item = listEvents[i];
				
				if(item[0].removeEventListener){
					item[0].removeEventListener(item[1], item[2], item[3]);
				};
				
				/* From this point on we need the event names to be prefixed with 'on" */
				if(item[1].substring(0, 2) != "on"){
					item[1] = "on" + item[1];
				};

				if(item[0].detachEvent){
					item[0].detachEvent(item[1], item[2]);
				};

				item[0][item[1]] = null;
			};
		}
	};
}();


/* begin headnavigation animated menu
   Written by Frederik Van Zande, guided by the sitepoint DHTMl book
*/
sM = {
  init: function() {
	changeDefault();
    var uls = document.getElementsByTagName('ul');
    for (var u = 0; u < uls.length; u++) {
       if ((uls[u].id.search('head_nav') == -1) && (uls[u].id.search('left_nav_java_ul-1') == -1) ) continue;
      var lis = uls[u].getElementsByTagName('li');
      for (var i = 0; i < lis.length; i++) {
        var node = lis[i];
        if (node.nodeName.toLowerCase() == 'li' && node.getElementsByTagName('ul').length > 0) {
			for (var j=0;j<node.getElementsByTagName('ul').length;j++){
				node.getElementsByTagName('ul')[j].h=1;
			}
          //sM.addEvent(node, 'mouseover', sM.getMoverFor(node), false);
          //sM.addEvent(node, 'mouseout', sM.getMoutFor(node), false);
			if (uls[u].id=='left_nav_java_ul-1'){
				sM.addEvent(node, 'click', sM.getMclickFor(node), false);
			}else{
				//sM.addEvent(node, 'mouseover', sM.getMoverFor(node), false);
                //sM.addEvent(node, 'mouseout', sM.getMoutFor(node), false);
			}
			node.getElementsByTagName('a')[0].className += ' subheader';
          node.isIn = false;
        }
      }
    }
  },

   getMclickFor: function(node) {
    return function(e) { sM.mclick(e, node); };
  },
  getMoverFor: function(node) {
    return function(e) { sM.mover(e, node); };
  },

  getMoutFor: function(node) {
    return function(e) { sM.mout(e, node); };
  },

  mclick: function(e, targetElement) {
    var el = window.event ? targetElement : e ? e.currentTarget : null;
    if (!el) return;
    clearTimeout(el.outTimeout);
      for (var i = 0; i < el.childNodes.length; i++) {
        var node = el.childNodes[i];
        if (node.nodeName.toLowerCase() == 'ul') {
          // Stop current animation
          clearInterval(node.intervalID);
          // Assign initial visible area
          node.clippingRectangle = [0, 0, 24, 0];
          // Save full width and height
          node.style.display = 'block';
          node.savedOW = node.offsetWidth;
          node.savedOH = node.offsetHeight;
          node.style.display = 'none';
          // Start animation
		  if (node.h == 1){
				node.intervalID = setInterval(function() { sM.showMenu(node); }, 8);
				node.h = 0;
				el.className='on';
			}else{
				node.intervalID = setInterval(function() { sM.hideMenu(node); }, 8);
				node.h = 1;
				el.className='';
			}

          break;
        }
      }
    el.className += '';   // Force IE to recompute styles
  },

  mover: function(e, targetElement) {
    var el = window.event ? targetElement : e ? e.currentTarget : null;
    if (!el) return;
    clearTimeout(el.outTimeout);
    if (!el.isIn) {
      for (var i = 0; i < el.childNodes.length; i++) {
        var node = el.childNodes[i];
        if (node.nodeName.toLowerCase() == 'ul') {
          // Stop current animation
          clearInterval(node.intervalID);
          // Assign initial visible area
          node.clippingRectangle = [0, 0, 24, 0];
          // Save full width and height
          node.style.display = 'block';
          node.savedOW = node.offsetWidth;
          node.savedOH = node.offsetHeight;
          node.style.display = 'none';
          // Start animation
				node.intervalID = setInterval(function() { sM.showMenu(node); }, 18);
          break;
        }
      }
    }
    el.isIn = true;
    el.className += '';   // Force IE to recompute styles
  },

  mout: function(e, targetElement) {
    var el = window.event ? targetElement : e ? e.currentTarget : null;
    if (!el) return;
    el.outTimeout = setTimeout(function() { sM.mout2(el); }, 100);
  },

  mout2: function(el) {
    for (var i = 0; i < el.childNodes.length; i++) {
      var node = el.childNodes[i];
      if (node.nodeName.toLowerCase() == 'ul') {
        // Stop current animation
        clearInterval(node.intervalID);
        // Start animation
        node.intervalID = setInterval(function() { sM.hideMenu(node); }, 10);
        break;
      }
    }
    el.isIn = false;
  },

  showMenu: function(el) {
    el.clippingRectangle[1] = el.savedOW;
    if (el.clippingRectangle[1] >= el.savedOW) {
      el.clippingRectangle[1] = el.savedOW;
      el.clippingRectangle[2] += 15;
      if (el.clippingRectangle[2] >= el.savedOH) {
        el.clippingRectangle[2] = el.savedOH;
        clearInterval(el.intervalID);
        // reset the clip: browser-specific
        if (document.all && !window.opera) {
          el.style.clip = 'rect(auto)';
        } else {
          el.style.clip = '';
        }
        //return;
      }
    }
    el.style.clip = 'rect(' + el.clippingRectangle.join('px ') + 'px)';
    el.style.display = 'inline';
	fixTheScalableHeight();
    var contentheight = document.getElementById("content").offsetHeight;
    var menuheight = document.getElementById("left_nav").offsetHeight;
    /*if (menuheight > contentheight && !this.showMenuCalled) {
        document.getElementById("scalable_div").style.height = menuheight - contentheight+"px";
        this.showMenuCalled=1;
    }
	
	//alert(menuheight +" <? "+ contentheight);
	if (menuheight < contentheight){
        document.getElementById("scalable_div").style.height = "0px";
		//alert("ja");
	}
	else{
		document.getElementById("scalable_div").style.height = menuheight - contentheight+"px";
		//alert("nee");
	}*/
  },

  hideMenu: function(el) {
    el.clippingRectangle[2] -= 10;
    if (el.clippingRectangle[2] <= 0) {
      el.clippingRectangle[2] = 10;
      if (el.clippingRectangle[1] <= el.savedOW) {
        clearInterval(el.intervalID);
        // reset the clip: browser-specific
        if (document.all && !window.opera) {
          el.style.clip = 'rect(auto)';
        } else {
          el.style.clip = '';
        }
        el.style.display = 'none';
        return;
      }
    }
    el.style.clip = 'rect(' + el.clippingRectangle.join('px ') + 'px)';
	fixTheScalableHeight();
    var contentheight = document.getElementById("content").offsetHeight;
    var menuheight = document.getElementById("left_nav").offsetHeight;
    /*if (menuheight < contentheight){
        document.getElementById("scalable_div").style.height = "0px";
	}
	else {
		document.getElementById("scalable_div").style.height = menuheight - contentheight+"px";
	}*/
    this.showMenuCalled=0;
	
  },

  addEvent: function(elm, evType, fn, useCapture) {
    // cross-browser event handling for IE5+, NS6 and Mozilla
    // By Scott Andrew
    if (elm.addEventListener) {
      elm.addEventListener(evType, fn, useCapture);
      return true;
    } else if (elm.attachEvent) {
      var r = elm.attachEvent('on' + evType, fn);
      EventCache.add(elm, evType, fn);
      return r;
    } else {
      elm['on' + evType] = fn;
    }
  },

										  /*** Functions added by Jo Giraerts (jo@breakz.be) ***/
										
											// Hide non-javascript layer, show javascript version: manual_versions and attach an onChange-handler to the select-button
										  showBackgroundVersions: function() {
										
										 /* Special function for IE5. does the same as the regular one. Only for IE5!! */
										  if (BrowserDetect.browser == 'Explorer' || BrowserDetect.browser == 'Opera') {
											  document.getElementsByTagAndClassName = function (strTag, strClass, objContElm) {
										
												strTag = strTag || "*";
												objContElm = objContElm || document;
												var objColl = (strTag == '*' && document.all && !window.opera) ? document.all : objContElm.getElementsByTagName(strTag);
												var arr = new Array();
												var delim = strClass.indexOf('|') != -1  ? '|' : ' ';
												var arrClass = strClass.split(delim);
												for (var i = 0, j = objColl.length; i < j; i++) {
												  var arrObjClass = objColl[i].className.split(' ');
												  if (delim == ' ' && arrClass.length > arrObjClass.length) continue;
												  var c = 0;
												  comparisonLoop:
												  for (var k = 0, l = arrObjClass.length; k < l; k++) {
													for (var m = 0, n = arrClass.length; m < n; m++) {
													  if (arrClass[m] == arrObjClass[k]) c++;
													  if (( delim == '|' && c == 1) || (delim == ' ' && c == arrClass.length)) {
															arr.push(objColl[i]);
													  }
													}
												  }
												}
												return arr;
											  }
											}
											else { // For all other browsers..
											  HTMLElement.prototype.hasClass = function ( className )
											  {
												return (
												  this.className &&
												  this.className.match( new RegExp( "\\b"+className+"\\b" ) )
												) ? true : false;
											  }
										
											  document.getElementsByTagAndClassName = function ( tagName, className, parentElement )
											  {
												var elements = new Array ();
												var parent = ( parentElement ? parentElement : document.body);
												var children = parent.getElementsByTagName( tagName );
												for ( var a = 0; a < children.length; a++ )
												{
												  if ( children[a].hasClass ( className ) )
													elements.push ( children.item(a) );
												}
										
												return elements;
											  }
											}
										
											document.getElementsByClassName = function ( className, parentElement )
											{
											  return document.getElementsByTagAndClassName ( "*", className, parentElement );
											}
										
											HTMLElement.prototype.getElementsByTagAndClassName = function ( tagName, className )
											{
											  return document.getElementsByTagAndClassName ( tagName, className, this );
											}
										
											HTMLElement.prototype.getElementsByClassName = function ( className )
											{
											  return document.getElementsByClassName ( className, this );
											}
										
											// Tests for explorer..
										//    alert(document.getElementById('manual_item1').getElementsByTagName("span").length);
										
											// First hiding the non-javascript compatible layers..
											var node = document.getElementsByClassName("wide_block")[0];
											var els = document.getElementsByClassName('background_choise_remove_me', node);
											for (var j=0;j<=els.length;j++){
														if (els[j])
															els[j].style.display = 'none';
											}
										
											// Now showing the javascript version
											var node = document.getElementsByClassName("wide_block")[0];
											var els = document.getElementsByClassName('background_choise', node);
											for (var j=0;j<els.length;j++){
														var el = els[j];
														el.style.display = 'block';
														el.backgroundArray_id = j;
											}
										  },
										
										  // event-handler for onChange of the language-select button
										  changeBackground: function(el) {
											// Getting the right information from the global array
											var backgroundArrayLine = document.backgroundArray[el.parentNode.backgroundArray_id][el.selectedIndex];
										//      alert(el.parentNode.className);
										//    el.parentNode = el.parentNode ? el.parentNode : el.parentElement;
										//    alert(el.parentNode);
										//    alert(document.getElementsByClassName("update_manual", el.parentNode));
										
											var update_backgrounds = document.getElementsByClassName("update_backgrounds", el.parentNode);
											var url_backgrounds = document.getElementsByClassName("button small_download", el.parentNode);
											for (i=0; i < url_backgrounds.length; i++) {
												if (url_backgrounds[i].parentNode.backgroundArray_id == el.parentNode.backgroundArray_id)
													url_backgrounds[i].href = backgroundArrayLine[1];
											}
										  },



	  /*** Functions added by Jo Giraerts (jo@breakz.be) ***/
	
		// Hide non-javascript layer, show javascript version: manual_versions and attach an onChange-handler to the select-button
	  showDownloadVersions: function() {
	
	 /* Special function for IE5. does the same as the regular one. Only for IE5!! */
	  if (BrowserDetect.browser == 'Explorer' || BrowserDetect.browser == 'Opera') {
		  document.getElementsByTagAndClassName = function (strTag, strClass, objContElm) {
	
			strTag = strTag || "*";
			objContElm = objContElm || document;
			var objColl = (strTag == '*' && document.all && !window.opera) ? document.all : objContElm.getElementsByTagName(strTag);
			var arr = new Array();
			var delim = strClass.indexOf('|') != -1  ? '|' : ' ';
			var arrClass = strClass.split(delim);
			for (var i = 0, j = objColl.length; i < j; i++) {
			  var arrObjClass = objColl[i].className.split(' ');
			  if (delim == ' ' && arrClass.length > arrObjClass.length) continue;
			  var c = 0;
			  comparisonLoop:
			  for (var k = 0, l = arrObjClass.length; k < l; k++) {
				for (var m = 0, n = arrClass.length; m < n; m++) {
				  if (arrClass[m] == arrObjClass[k]) c++;
				  if (( delim == '|' && c == 1) || (delim == ' ' && c == arrClass.length)) {
						arr.push(objColl[i]);
				  }
				}
			  }
			}
			return arr;
		  }
		}
		else { // For all other browsers..
		  HTMLElement.prototype.hasClass = function ( className )
		  {
			return (
			  this.className &&
			  this.className.match( new RegExp( "\\b"+className+"\\b" ) )
			) ? true : false;
		  }
	
		  document.getElementsByTagAndClassName = function ( tagName, className, parentElement )
		  {
			var elements = new Array ();
			var parent = ( parentElement ? parentElement : document.body);
			var children = parent.getElementsByTagName( tagName );
			for ( var a = 0; a < children.length; a++ )
			{
			  if ( children[a].hasClass ( className ) )
				elements.push ( children.item(a) );
			}
	
			return elements;
		  }
		}
	
		document.getElementsByClassName = function ( className, parentElement )
		{
		  return document.getElementsByTagAndClassName ( "*", className, parentElement );
		}
	
		HTMLElement.prototype.getElementsByTagAndClassName = function ( tagName, className )
		{
		  return document.getElementsByTagAndClassName ( tagName, className, this );
		}
	
		HTMLElement.prototype.getElementsByClassName = function ( className )
		{
		  return document.getElementsByClassName ( className, this );
		}
	
		// Tests for explorer..
	//    alert(document.getElementById('manual_item1').getElementsByTagName("span").length);
	
		// First hiding the non-javascript compatible layers..
		var node = document.getElementsByClassName("wide_block")[0];
		var els = document.getElementsByClassName('dropdown_download_remove_me', node);
		for (var j=0;j<=els.length;j++){
					if (els[j])
						els[j].style.display = 'none';
		}
	
		// Now showing the javascript version
		var node = document.getElementsByClassName("wide_block")[0];
		var els = document.getElementsByClassName('dropdown_download', node);
		for (var j=0;j<els.length;j++){
					var el = els[j];
					el.style.display = 'block';
					el.downloadArray_id = j;
		}
	  },
	
	  // event-handler for onChange of the language-select button
	  changeDownload: function(el) {
		// Getting the right information from the global array
		var downloadArrayLine = document.downloadArray[el.parentNode.downloadArray_id][el.selectedIndex];
	//      alert(el.parentNode.className);
	//    el.parentNode = el.parentNode ? el.parentNode : el.parentElement;
	//    alert(el.parentNode);
	//    alert(document.getElementsByClassName("update_manual", el.parentNode));
	
		var update_downloads = document.getElementsByClassName("update_downloads", el.parentNode);
		for (i=0; i< update_downloads.length; i++) {
			if (update_downloads[i].parentNode.downloadArray_id == el.parentNode.downloadArray_id)
				update_downloads[i].innerHTML = "latest update: <strong>"+downloadArrayLine[1]+"</strong>"
		}
		var size_downloads = document.getElementsByClassName("size_downloads", el.parentNode);
		for (i=0; i < size_downloads.length; i++) {
			if (size_downloads[i].parentNode.downloadArray_id == el.parentNode.downloadArray_id)
				size_downloads[i].innerHTML = 'size: <strong>'+downloadArrayLine[2]+'</strong>';
		}
		var url_downloads = document.getElementsByClassName("button_shiny download_button", el.parentNode);
		for (i=0; i < url_downloads.length; i++) {
			if (url_downloads[i].parentNode.downloadArray_id == el.parentNode.downloadArray_id)
				url_downloads[i].href = downloadArrayLine[3];
		}
	  },
							
							

  /*** Functions added by Jo Giraerts (jo@breakz.be) ***/

    // Hide non-javascript layer, show javascript version: manual_versions and attach an onChange-handler to the select-button
  showManualVersions: function() {

    /* Special function for IE5. does the same as the regular one. Only for IE5!! */
	  if (BrowserDetect.browser == 'Explorer' || BrowserDetect.browser == 'Opera') {
      document.getElementsByTagAndClassName = function (strTag, strClass, objContElm) {

        strTag = strTag || "*";
        objContElm = objContElm || document;
        var objColl = (strTag == '*' && document.all && !window.opera) ? document.all : objContElm.getElementsByTagName(strTag);
        var arr = new Array();
        var delim = strClass.indexOf('|') != -1  ? '|' : ' ';
        var arrClass = strClass.split(delim);
        for (var i = 0, j = objColl.length; i < j; i++) {
          var arrObjClass = objColl[i].className.split(' ');
          if (delim == ' ' && arrClass.length > arrObjClass.length) continue;
          var c = 0;
          comparisonLoop:
          for (var k = 0, l = arrObjClass.length; k < l; k++) {
            for (var m = 0, n = arrClass.length; m < n; m++) {
              if (arrClass[m] == arrObjClass[k]) c++;
              if (( delim == '|' && c == 1) || (delim == ' ' && c == arrClass.length)) {
                    arr.push(objColl[i]);
              }
            }
          }
        }
        return arr;
      }
    }
    else { // For all other browsers..
      HTMLElement.prototype.hasClass = function ( className )
      {
        return (
          this.className &&
          this.className.match( new RegExp( "\\b"+className+"\\b" ) )
        ) ? true : false;
      }

      document.getElementsByTagAndClassName = function ( tagName, className, parentElement )
      {
        var elements = new Array ();
        var parent = ( parentElement ? parentElement : document.body);
        var children = parent.getElementsByTagName( tagName );
        for ( var a = 0; a < children.length; a++ )
        {
          if ( children[a].hasClass ( className ) )
            elements.push ( children.item(a) );
        }

        return elements;
      }
    }

    document.getElementsByClassName = function ( className, parentElement )
    {
      return document.getElementsByTagAndClassName ( "*", className, parentElement );
    }

    HTMLElement.prototype.getElementsByTagAndClassName = function ( tagName, className )
    {
      return document.getElementsByTagAndClassName ( tagName, className, this );
    }

    HTMLElement.prototype.getElementsByClassName = function ( className )
    {
      return document.getElementsByClassName ( className, this );
    }

    // Tests for explorer..
//    alert(document.getElementById('manual_item1').getElementsByTagName("span").length);

    // First hiding the non-javascript compatible layers..
    var node = document.getElementsByClassName("wide_block")[0];
    var els = document.getElementsByClassName('manual_versions_remove_me', node);
    for (var j=0;j<=els.length;j++){
                if (els[j])
    				els[j].style.display = 'none';
	}

    // Now showing the javascript version
    var node = document.getElementsByClassName("wide_block")[0];
    var els = document.getElementsByClassName('manual_versions', node);
    for (var j=0;j<els.length;j++){
				var el = els[j];
                el.style.display = 'block';
                el.langarray_id = j;
	}
  },

  // event-handler for onChange of the language-select button
  changeLang: function(el) {
    // Getting the right information from the global array
    var langArrayLine = document.langArray[el.parentNode.langarray_id][el.selectedIndex];
//      alert(el.parentNode.className);
//    el.parentNode = el.parentNode ? el.parentNode : el.parentElement;
//    alert(el.parentNode);
//    alert(document.getElementsByClassName("update_manual", el.parentNode));

    var update_manuals = document.getElementsByClassName("update_manual", el.parentNode);
    for (i=0; i< update_manuals.length; i++) {
        if (update_manuals[i].parentNode.langarray_id == el.parentNode.langarray_id)
            update_manuals[i].innerHTML = "latest update: <strong>"+langArrayLine[1]+"</strong>"
    }
    var size_manuals = document.getElementsByClassName("size_manual", el.parentNode);
    for (i=0; i < size_manuals.length; i++) {
        if (size_manuals[i].parentNode.langarray_id == el.parentNode.langarray_id)
            size_manuals[i].innerHTML = 'size: <strong>'+langArrayLine[2]+'</strong>';
    }
    var url_manuals = document.getElementsByClassName("button_shiny manuals_button", el.parentNode);
    for (i=0; i < url_manuals.length; i++) {
        if (url_manuals[i].parentNode.langarray_id == el.parentNode.langarray_id)
            url_manuals[i].href = langArrayLine[3];
    }
  }
};

sM.addEvent(window, 'load', sM.init, false);
sM.addEvent(window, 'load', sM.showManualVersions, false);
sM.addEvent(window, 'load', sM.showDownloadVersions, false);
sM.addEvent(window, 'load', sM.showBackgroundVersions, false);
sM.addEvent(window, 'unload', EventCache.flush, false);

// javascript for the contact form //

//Get all the elements of the given classname of the given tag.
function getElementsByClassName(classname,tag) {
 if(!tag) tag = "*";
 var anchs =  document.getElementsByTagName(tag);
 var total_anchs = anchs.length;
 var regexp = new RegExp('\\b' + classname + '\\b');
 var class_items = new Array()

 for(var i=0;i<total_anchs;i++) { //Go thru all the links seaching for the class name
  var this_item = anchs[i];
  if(regexp.test(this_item.className)) {
   class_items.push(this_item);
  }
 }
 return class_items;
}

function isEmail(str)
{
	var email = str;
	var pattern = /^([a-zA-Z0-9_\.-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/;
	flag = pattern.test(email); 
	if(flag) 
		return true; 
	else 
		return false; 
}
function isDate(str){
	var reg = /^(\d+)-(\d{1,2})-(\d{1,2})$/;
	var r = str.match(reg); 
	if(r==null)return false; 
	r[2]=r[2]-1;
	var d= new Date(r[1], r[2],r[3]); 
	if(d.getFullYear()!=r[1])return false; 
	if(d.getMonth()!=r[2])return false; 
	if(d.getDate()!=r[3])return false; 
	return true;
}
function isMobile(str)
{
	var sMobile = str; 
	var pattern = /^(13)(\d{9})$/;
	flag = pattern.test(sMobile); 
	if(flag) 
		return true; 
	else 
		return false; 
}
function hideAllErr()
{				
	var errObj = getElementsByClassName("error_msg","span");
	//alert(errObj.length);
	for(var i=0;i<errObj.length;i++)
	{
		errObj[i].style.display="none";
	}
}
function showErr(str)
{
	var objId = "err_" + str ;
	var errObj = document.getElementById(objId);
	errObj.parentNode.style.display="";		
}
function chkFrmTech()
{
	hideAllErr();
		if (document.getElementById("first_name").value=="")
		{
			showErr("first_name");
			document.getElementById("first_name").focus();
			return false;
		}
		if (document.getElementById("last_name").value=="")
		{
			showErr("last_name");
			document.getElementById("last_name").focus();
			return false;
		}
		if (!isEmail(document.getElementById("email").value))
		{
			showErr("email");
			document.getElementById("email").focus();
			return false;
		}
		if (document.getElementById("shop_country").value=="")
		{
			showErr("shop_country");
			document.getElementById("shop_country").focus();
			return false;
		}
		if (document.getElementById("serial_num").value=="")
		{
			showErr("serial_num");
			document.getElementById("serial_num").focus();
			return false;
		}
		if (document.getElementById("model").value=="")
		{
			showErr("model");
			document.getElementById("model").focus();
			return false;
		}
		if (document.getElementById("subject").value=="")
		{
			showErr("subject");
			document.getElementById("subject").focus();
			return false;
		}
		if (document.getElementById("comment").value=="")
		{
			showErr("comment");
			document.getElementById("comment").focus();
			return false;
		}
	return true;
}
function chkFrmNonTech()
{
	hideAllErr();
		if (document.getElementById("first_name").value=="")
		{
			showErr("first_name");
			document.getElementById("first_name").focus();
			return false;
		}
		if (document.getElementById("last_name").value=="")
		{
			showErr("last_name");
			document.getElementById("last_name").focus();
			return false;
		}
		if (!isEmail(document.getElementById("email").value))
		{
			showErr("email");
			document.getElementById("email").focus();
			return false;
		}
		if (document.getElementById("feedback_type").value=="")
		{
			showErr("feedback_type");
			document.getElementById("feedback_type").focus();
			return false;
		}
		if (document.getElementById("shop_country").value=="")
		{
			showErr("shop_country");
			document.getElementById("shop_country").focus();
			return false;
		}
		if (document.getElementById("subject").value=="")
		{
			showErr("subject");
			document.getElementById("subject").focus();
			return false;
		}
		if (document.getElementById("comment").value=="")
		{
			showErr("comment");
			document.getElementById("comment").focus();
			return false;
		}
	return true;
}
function chkFrmOKTech()
{
	if (chkFrmTech())
	{
		// document.getElementById("registration").onsubmit=true;
		document.getElementById("registration").submit();
	}
}
function chkFrmOKNonTech()
{
	if (chkFrmNonTech())
	{
		// document.getElementById("registration").onsubmit=true;
		document.getElementById("registration").submit();
	}
}

function submitform(submitting_form)
{
  document.getElementById(submitting_form).submit();
}


function submitvote(submitting_vote)
{
  document.getElementById(submitting_vote).submit();
}


function addLoadListener(fn)
{
 if (typeof window.addEventListener != 'undefined')
 {
   window.addEventListener('load', fn, false);
 }
 else if (typeof document.addEventListener != 'undefined')
 {
   document.addEventListener('load', fn, false);
 }
 else if (typeof window.attachEvent != 'undefined')
 {
   window.attachEvent('onload', fn);
 }
 else
 {
   var oldfn = window.onload;
   if (typeof window.onload != 'function')
   {
     window.onload = fn;
   }
   else
   {
     window.onload = function()
     {
       oldfn();
       fn();
     };
   }
 }
}

function fixTheScalableHeight()
{
	//alert("scaling..");
	var contentheight = document.getElementById("content").offsetHeight;
    var menuheight = document.getElementById("left_nav").offsetHeight;
	//alert(menuheight +" <? "+ contentheight);
	if (menuheight > contentheight){
		document.getElementById("scalable_div").style.height = menuheight - contentheight+10+"px";
		//alert("ja");
	}/*
	else{
		        document.getElementById("scalable_div").style.height = "10px";
		//alert("nee");
	}	*/
}

addLoadListener(fixTheScalableHeight);