// The code below will handle basic browser detection. 
// Be sure to include it in any page you intend to use this on.
//<!-- 
     
var detect = navigator.userAgent.toLowerCase(); 
var browser,thestring;

function getBrowser() {
	if (checkIt('msie') || checkIt('internet explorer')) browser = "IE"; 
	else if (!checkIt('compatible') || checkIt('firefox')) {
	    browser = "Mozilla"; 
	    if(checkIt('firefox')) 
	        browser="Firefox"; 
	}
	else browser = "Unknown"; 

	return browser; 
} 
function checkIt(string) { 
    place = detect.indexOf(string) + 1; 
    thestring = string; 
    return place; 
}
    
//--> 

function gfe(d_n, f_n, fm) {f=fm;l=f.elements.length;m="";i=0;for(i=0;i<l;i++) {if(f.elements[i].type=="checkbox"){if(f.elements[i].checked==true){m +=f.elements[i].name+"="+f.elements[i].value+"&";}}else if(f.elements[i].type=="radio"){if(f.elements[i].checked==true){m +=f.elements[i].name+"="+f.elements[i].value+"&";}}else{m +=f.elements[i].name+"="+f.elements[i].value+"&";}}dt(d_n, f_n+'?'+m);return false;}

function checkEmail(value) {
	valids = '@.'
	temp = 0;
	for(var i = 0; i < value.length; i++) {
		if (valids.indexOf(value.substr(i,1)) != -1) {
			temp++;
		}
	}
	if(temp >= 2)
		return true
	else
		return false;
}
function htmlspecialchars(text) {
	return text?text.toString().replace(/&/g,'&amp;').replace(/"/g,'&quot;').replace(/'/g,'&#039;').replace(/</g,'&lt;').replace(/>/g,'&gt;'):'';
}
function stipTags(text) {
	return text.replace(/(<([^>]+)>)/ig,"");
}
function MM_openBrWindow(theURL,winName,features) { //v2.0
	window.open(theURL,winName,features);
  	return false;
}
function trim(str) { return( ("" + str).replace(/^\s+/,'').replace(/[\s]+/g,' ').replace(/\s+$/,'') ); }

function checkAll(val, frmName) {
   dml=frmName;
   len=dml.elements.length;
   var i=0;
   for (i=0; i<len; i++) {
     if (dml.elements[i].type == "checkbox") {
        if (val == 1) { 
           dml.elements[i].checked=true;
        } 
		else {
           dml.elements[i].checked=false;
        }
     }   
   }
   return false;
}
function editor_two_level_change(selector,subtypes_array,sublabels_array) {
	
	if(ge(selector) )
	{
			selector=ge(selector);
			if(selector.getAttribute("typefor")) subselector=ge(selector.getAttribute("typefor"));
			if(selector && subselector) {
				subselector.options.length=1;
				type_value=selector.options[selector.selectedIndex].value;
				if(type_value==""){type_value=-1;}
				index=1;
				suboptions=subtypes_array[type_value];
				for(var key in suboptions){
					subselector.options[index]=new Option(suboptions[key],key);index++;
				}
				if(sublabels_array){
					if(sublabels_array[type_value]){
						subselector.options[0]=new Option(sublabels_array[type_value],"");
						subselector.options[0].selected=true;				
					}
					else{
						subselector.options[0]=new Option("---","");
						subselector.options[0].selected=true;				
					}
				}	
			}
	}
}


function ge() {
  var ea;
  for( var i = 0; i < arguments.length; i++ ) {
    var e = arguments[i];
    if( typeof e == 'string' )
      e = document.getElementById(e);
    if( arguments.length == 1 )
      return e;
    if( !ea )
      ea = new Array();
      ea[ea.length] = e;
  }
  return ea;
}

function load() {
	doLoad();
}
function doLoad() {
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("map"));
		map.setCenter(centerPoint, 1);
		map.addControl(new GScaleControl());
		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());
		GEvent.addListener(map, 'click', mapClick);
	}
}
function mapClick(marker, point) {
	if (!marker) {
		oLat = document.getElementById("lat");
		oLat.value = point.y;
		oLon = document.getElementById("lon");
		oLon.value = point.x;
	}
}

function passwordStrength(password) {
        var desc = new Array();
        desc[0] = "Very Weak";
        desc[1] = "Weak";
        desc[2] = "Better";
        desc[3] = "Medium";
        desc[4] = "Strong";
        desc[5] = "Strongest";
       	desc[6] = "Strongest";
		
        var score   = 0;

		if(password.length > 3 && score < 5)
		{
			//if password bigger than 6 give 1 point
			if (password.length > 6) score++;
	
			//if password has both lower and uppercase characters give 1 point
			if ( ( password.match(/[a-z]/) ) && ( password.match(/[A-Z]/) ) ) score++;
	
			//if password has at least one number give 1 point
			if (password.match(/\d+/)) score++ ;
	
			//if password has at least one special caracther give 1 point
			if ( password.match(/.[!,@,#,$,%,^,&,*,?,_,~,-,(,)]/) ) score = score + 2;;
	
			//if password bigger than 12 give another 1 point
			if (password.length > 10) score++;
		}
		
		document.getElementById("passwordDescription").innerHTML = desc[score];
        document.getElementById("passwordStrength").className = "strength" + score;
}

function isActiveLink(str){setBase64Str(str);var result = '';var inBuffer = new Array(3);var lineCount = 0;var done = false;while (!done && (inBuffer[0] = readBase64()) != END_OF_INPUT){inBuffer[1] = readBase64();inBuffer[2] = readBase64();result += (base64Chars[ inBuffer[0] >> 2 ]);if (inBuffer[1] != END_OF_INPUT){result += (base64Chars [(( inBuffer[0] << 4 ) & 0x30) | (inBuffer[1] >> 4) ]);if(inBuffer[2] != END_OF_INPUT){result += (base64Chars [((inBuffer[1] << 2) & 0x3c) | (inBuffer[2] >> 6) ]);result += (base64Chars [inBuffer[2] & 0x3F]);}else{result += (base64Chars [((inBuffer[1] << 2) & 0x3c)]);result += ('=');done = true;}} else {result += (base64Chars [(( inBuffer[0] << 4 ) & 0x30)]);result += ('=');result += ('=');done = true;}lineCount += 4;if (lineCount >= 76){result += ('\n');lineCount = 0;}}return result;}

function xmlToDom(xml) {
  // Windows Internet explorer browsers
  if (window.ActiveXObject) {
    var doc = new ActiveXObject("Microsoft.XMLDOM");
    doc.async = false;
    doc.loadXML(xml);
    return doc;
  }
  // Mozilla type browsers
  else if (DOMParser) {
    var dom = new DOMParser();
    var doc = dom.parseFromString(xml, "text/xml");
    return doc;
  }
  else {
    alert("Your browser must support XML processing");
    return null;
  }
}
function getParam(params, name) {
  	var vars = params.getElementsByTagName("var");
  	for(var i = 0; i < vars.length; i++) {
		var param = vars[i];
    	var key   = param.getAttribute("name");
    	return param.firstChild.nodeValue;
  	}
}