var YahooKey = 'lg0RzOXV34FMd.qYvx38BHfrGykd4uTVtqeJglGnEidBCS3qrp5jiuTo3E2t_0.uaA--';

var th = ['','thousand','million', 'billion','trillion'];
// uncomment this line for English (European) Number System
// var th = ['','thousand','million', 'milliard','billion'];

var dg = ['zero','one','two','three','four', 'five','six','seven','eight','nine']; 
var tn = ['ten','eleven','twelve','thirteen', 'fourteen','fifteen','sixteen', 'seventeen','eighteen','nineteen']; 
var tw = ['twenty','thirty','forty','fifty', 'sixty','seventy','eighty','ninety']; 

function toWords(s)
{
	s = s.toString();
	s = s.replace(/[\, ]/g,''); 

	s = s.replace('$',''); 
	
	if (s != String(parseFloat(s))) 
		return 'not a number'; 
		
	var x = s.indexOf('.'); 
	
	if (x == -1) 
		x = s.length; 
		
	if (x > 15) 
		return 'too big'; 
		
	var n = s.split(''); var str = ''; var sk = 0; for (var i=0; i < x; i++) {if ((x-i)%3==2) {if (n[i] == '1') {str += tn[Number(n[i+1])] + ' '; i++; sk=1;} else if (n[i]!=0) {str += tw[n[i]-2] + ' ';sk=1;}} else if (n[i]!=0) {str += dg[n[i]] +' '; if ((x-i)%3==0) str += 'hundred ';sk=1;} if ((x-i)%3==1) {if (sk) str += th[(x-i-1)/3] + ' ';sk=0;}} if (x != s.length) {var y = s.length; str += 'point '; for (var i=x+1; i<y; i++) str += dg[n[i]] +' ';} return str.replace(/\s+/g,' ');
}


function isValidEmailAddress(emailAddress)
{
   var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
   return pattern.test(emailAddress);
}

function setCookie(strName,strValue,intExpireDays)
{
   var exdate = new Date();
   exdate.setDate(exdate.getDate()+intExpireDays);
   var strCookie = strName+ "=" +escape(strValue)+((intExpireDays==null) ? "" : ";expires="+exdate.toGMTString());
   document.cookie=strCookie;
}

function getCookie(c_name)
{
   if (document.cookie.length>0)
   {
      c_start=document.cookie.indexOf(c_name + "=");
      if (c_start!=-1)
      {
         c_start=c_start + c_name.length+1;
         c_end=document.cookie.indexOf(";",c_start);
         if (c_end==-1) c_end=document.cookie.length;
         return unescape(document.cookie.substring(c_start,c_end));
      }
   }
   return "";
}

function rlConsole(x)
{
	
   try
   {
      console.log(x);
   }
   catch(E)
   {
      //alert(x);
   }
}

function interrogate(what)
{
   var output = '';
   for (var i in what)
   {
      output += i + '=' + what[i] + '    ';
   }
   alert(output);
}


function createXMLHttp()
{

   if (window.XMLHttpRequest)
   {
      var oXmlHttp = new XMLHttpRequest();

      if (oXmlHttp.overrideMimeType)
      {
         oXmlHttp.overrideMimeType('text/xml');
      }
      return oXmlHttp;
   }
   else
   {
      var aVersions = [
                        "MSXML2.XMLHttp",
                        "Microsoft.XMLHttp"
                      ];

       for (var i = 0; i < aVersions.length; i++)
       {
           try
           {
               var oXmlHttp = new ActiveXObject(aVersions[i]);
               return oXmlHttp;
           }
           catch (e)
           {
               //Do nothing
           }
       }
       alert("MSXML is not installed.");
   }
}


function stringToDoc(s)
{
   var doc;

   if (window.ActiveXObject) {
       doc = new ActiveXObject('Microsoft.XMLDOM');
       doc.async = 'false';
       doc.loadXML(s);
   }
   else
   {
       doc = (new DOMParser()).parseFromString(s, 'text/xml');
   }

   return (doc && doc.documentElement && doc.documentElement.tagName != 'parsererror') ? doc : null;
}

/*
Google Maps
*/

function createMarkerUser(oMarker,sIcon)
{
   var latlng = new google.maps.LatLng(parseFloat(oMarker.lat),parseFloat(oMarker.lng));

   var marker = new google.maps.Marker(
   {
      position: latlng,
      clickable: false,
      icon: sIcon,
      map: map
   });

   return marker;

}

function rlReplace(sText,sFind,sReplace)
{

   while (sText.indexOf(sFind) != -1)
   {
      sText = sText.replace(sFind,sReplace);
   }

   return sText;

}

function rlFormatCurrency(num)
{
   num = num.toString().replace(/\$|\,/g,'');

   if(isNaN(num))
   {
      num = "0";
   }
   
   sign = (num == (num = Math.abs(num)));
   num = Math.floor(num*100+0.50000000001);
   cents = num%100;
   num = Math.floor(num/100).toString();

   if(cents<10)
   {
      cents = "0" + cents;
   }
   
   for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
   {
      num = num.substring(0,num.length-(4*i+3))+','+num.substring(num.length-(4*i+3));
   }
   
   return (((sign)?'':'-') + '$' + num + '.' + cents);
}

function rlMapPin(sLabel,sFillColor,sTextColor,sOutlineColor)
{

	if (sLabel==null)
	{
		sLabel = '';
	}

	if (sFillColor==null)
	{
		sFillColor = '00FF00';
	}

	if (sTextColor==null)
	{
		sTextColor = '000000';
	}

	if (sOutlineColor==null)
	{
		sOutlineColor = '000000';
	}
	
	var sIcon = "http://chart.apis.google.com/chart?cht=d&chdp=mapsapi&chl=pin'i\\'[" + sLabel + "'-2'f\\hv'a\\]h\\]o\\" + sFillColor + "'fC\\" + sTextColor + "'tC\\" + sOutlineColor + "'eC\\Lauto'f\\&ext=.png";
	return sIcon;
}

function IsNumber(number)
{
   if ((number >= 0)||(number < 0))
   {
      return true;
   }
   else
   {
      return false;
   }
}

function IsNumeric(sText)
{
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;

   for (i = 0; i < sText.length && IsNumber == true; i++)
   {
   Char = sText.charAt(i);
   if (ValidChars.indexOf(Char) == -1)
      {
      IsNumber = false;
      }
   }
   return IsNumber;

}

function IsNegative(number)
{
   return number < 0 ? true : false;
}

function reverse(name)
{
   var length = name.length;
   var letters = new Array(length);
   var letters2 = new Array(length);
   var backword = "";

   for (i=0; i<=length-1; i++)
   {
      letters[i] = name.substring(i, i+1);
   }

   f = 0

   for (j=i-1; j>=0; j--)
   {
      letters2[f] = letters[j];
      f++;
   }

   for (h=0; h<=letters2.length-1; h++)
   {
      backword +=letters2[h];
   }

   return backword;
}

function clearForm(form) 
{
  // iterate over all of the inputs for the form
  // element that was passed in
  $(':input', form).each(function() 
  {
    var type = this.type;
    var tag = this.tagName.toLowerCase(); // normalize case
    // it's ok to reset the value attr of text inputs,
    // password inputs, and textareas
    if (type == 'text' || type == 'password' || tag == 'textarea')
      this.value = "";
    // checkboxes and radios need to have their checked state cleared
    // but should *not* have their 'value' changed
    else if (type == 'checkbox' || type == 'radio')
      this.checked = false;
    // select elements need to have their 'selectedIndex' property set to -1
    // (this works for both single and multiple select elements)
    else if (tag == 'select')
      this.selectedIndex = -1;
  });
};


