var regEx={
		Ymd:'^[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}$',
		blank: '^\\s*$',
		word: '^\\w+$',
		email: '^\\s*([a-zA-Z0-9_\.-])+@([a-zA-Z0-9_\.-])+\\.[a-zA-Z]{2,5}\\s*$',
		integer: '^\\d*$'
	}
	
function clientSize() {
  var myWidth = 0, myHeight = 0;
  if( typeof( window.innerWidth ) == 'number' ) {
    //Non-IE
    myWidth = window.innerWidth;
    myHeight = window.innerHeight;
  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
    //IE 6+ in 'standards compliant mode'
    myWidth = document.documentElement.clientWidth;
    myHeight = document.documentElement.clientHeight;
  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
    //IE 4 compatible
    myWidth = document.body.clientWidth;
    myHeight = document.body.clientHeight;
  }
  //window.alert( 'Width = ' + myWidth );
  //window.alert( 'Height = ' + myHeight );
  return {width:myWidth,height:myHeight};
}

function getScrollXY() {
  var scrOfX = 0, scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
  }
  return {scrollLeft:scrOfX,scrollTop:scrOfY};
}

function in_array()
{
	switch(arguments.length)
	{
		case 2:
			if(Object.isArray(arguments[0]))
			{
				flag=false;
				for(i=0;i<arguments[0].length;i++)
				{
					if(arguments[0][i]==arguments[1])
					{
						flag=true;
						break;
					}
				}
				return flag;
			}
			else
			{
				alert('Bad arguments');	
			}
		break;
		
		default:
			alert('Bad arguments');
		break;
	}
}


function populateDate()
{
	switch(arguments.length)
	{
		case 3:
			year=arguments[0].value;
			month=arguments[1].value;
			target=arguments[2];
			switch(month)
			{
				case '1':
					no_of_days=31;
				break;
				case '2':
					no_of_days=isLeapYear(year)?29:28;
				break;
				case '3':
					no_of_days=31;
				break;
				case '4':
					no_of_days=30;
				break;
				case '5':
					no_of_days=31;
				break;
				case '6':
					no_of_days=30;
				break;
				case '7':
					no_of_days=31;
				break;
				case '8':
					no_of_days=31;
				break;
				case '9':
					no_of_days=30;
				break;
				case '10':
					no_of_days=31;
				break;
				case '11':
					no_of_days=30;
				break;
				case '12':
					no_of_days=31;
				break;
				default:
					no_of_days=31;
				break;
			}
			for(i=target.options.length-1;i>=0;i--)
			{
				target.options[i]=null;
			}
			for(i=0;i<no_of_days;i++)
			{
				target.options[i] = new Option(i+1,i+1);
			}
		break;
		
		default:
			alert('Bad arguments');
			break;
	}
}

function isLeapYear(year)
{
	flag=false;
	if(year%400==0)
	{
		flag=true;
	}
	else if(year%100==0)
	{
		flag=false;	
	}
	else if(year%4==0)
	{
		flag=true;
	}
	return flag;
}

function chkExt(str)
{
	str=str.toLowerCase();
	var pos=str.lastIndexOf(".");
	var len=str.length;
	var upper=len-pos;
	var ext=str.substring(pos,len);
	if(ext!='.pdf')
	{
		alert('Please upload .pdf only');
		return false;
	}
}

function Alert(msg)
{
	alert(msg);
}

function gotoPage(url)
{
	window.location=url;
}

function Focus(element)
{/*
	for(i=0;i<element.form.elements.length;i++)
	{
		//alert(element.form.elements[i].style.border);
		//element.form.elements[i].style.border="1px solid #6a92b8";
		type=element.form.elements[i].type;
		if((type!='submit')&&(type!='reset')&&(type!='button'))
		element.form.elements[i].className="txt_input1";
		if(type=='textarea')
		{
			element.form.elements[i].className="text_area";
		}
	}
	//element.style.border="2px solid #FF0000";
	if(element.type=="textarea")
	{
		element.className="txt_input1";
	}
	else
	{
		element.className="txt_input_error";
	}*/
	element.focus();
}

function toCenter(e)
{
	//leftPos=(document.viewport.getWidth()-e.getWidth())/2;
	clsz=clientSize();
	leftPos=(clsz.width-e.getWidth())/2;
	scrollOff=document.viewport.getScrollOffsets();
	topPos=scrollOff.top+200;
	//alert(leftPos);
	e.style.left=leftPos+"px";
	e.style.top=topPos+"px";
}

function encode64(input) {
   var output = "";
   var chr1, chr2, chr3;
   var enc1, enc2, enc3, enc4;
   var i = 0;

   do {
      chr1 = input.charCodeAt(i++);
      chr2 = input.charCodeAt(i++);
      chr3 = input.charCodeAt(i++);

      enc1 = chr1 >> 2;
      enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
      enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
      enc4 = chr3 & 63;

      if (isNaN(chr2)) {
         enc3 = enc4 = 64;
      } else if (isNaN(chr3)) {
         enc4 = 64;
      }

      output = output + keyStr.charAt(enc1) + keyStr.charAt(enc2) + 
         keyStr.charAt(enc3) + keyStr.charAt(enc4);
   } while (i < input.length);
   
   return output;
}
var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
function decode64(input) {
   var output = "";
   var chr1, chr2, chr3;
   var enc1, enc2, enc3, enc4;
   var i = 0;

   // remove all characters that are not A-Z, a-z, 0-9, +, /, or =
   input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");

   do {
      enc1 = keyStr.indexOf(input.charAt(i++));
      enc2 = keyStr.indexOf(input.charAt(i++));
      enc3 = keyStr.indexOf(input.charAt(i++));
      enc4 = keyStr.indexOf(input.charAt(i++));

      chr1 = (enc1 << 2) | (enc2 >> 4);
      chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
      chr3 = ((enc3 & 3) << 6) | enc4;

      output = output + String.fromCharCode(chr1);

      if (enc3 != 64) {
         output = output + String.fromCharCode(chr2);
      }
      if (enc4 != 64) {
         output = output + String.fromCharCode(chr3);
      }
   } while (i < input.length);

   return output;
}

function getURLParam(strParamName){
  var strReturn = "";
  var strHref = window.location.href;
  if ( strHref.indexOf("?") > -1 ){
    var strQueryString = strHref.substr(strHref.indexOf("?")).toLowerCase();
    var aQueryString = strQueryString.split("&");
    for ( var iParam = 0; iParam < aQueryString.length; iParam++ ){
      if (
aQueryString[iParam].indexOf(strParamName.toLowerCase() + "=") > -1 ){
        var aParam = aQueryString[iParam].split("=");
        strReturn = aParam[1];
        break;
      }
    }
  }
  return unescape(strReturn);
}

function toggleDefaultValue(e,val) /* this function gets an element and if value of the element is blank then replaces it with the default value which is also passed as 2nd argu. */
{										   		   /* 3rd variable deleteVal=false means delete defalt value , true replaces the value */
	deleteVal=true;
	if(arguments.length==3)
	{
		deleteVal=arguments[2];
	}
	if(deleteVal)
	{
		if(e.value==val)
		{
			e.value='';
		}	
	}
	else
	{
		if(e.value.match(regEx.blank))
		{
			e.value=val;
		}
	}
}