String.prototype.trim = function() {
    return this.replace(/^\s+|\s+$/g, "");
}
String.prototype.ltrim = function() {
    return this.replace(/^\s+/, "");
}
String.prototype.rtrim = function() {
    return this.replace(/\s+$/, "");
}


function daysInMonth(iYear,iMonth){
    
    var result = 0;
    
    switch(iMonth * 1){
        case 1:
        case 3:
        case 5:
        case 7:
        case 12:
        case 10:
        case 8:
            result = 31;
            break;
        case 6:
        case 4:
        case 11:
        case 9:
            result = 30;
            break;
        case 2:
            if (((iYear % 4 == 0) && (iYear % 100 != 0)) || (iYear % 400 == 0)){
                    result = 29;
                }else{ 
                    result = 28;
                }
            break;
    }
    return result;
}


function datePicker_MonthYearChange(cmbDateName, cmbMonthName, cmbYearName){
    var cmbDate=document.getElementById(cmbDateName);
    var cmbMonth=document.getElementById(cmbMonthName);
    var cmbYear=document.getElementById(cmbYearName);
    
    datePicker_RefreshDays(cmbDate, cmbMonth, cmbYear);
}

function datePicker_NumDays(cmbMonth, cmbYear){
    if (cmbMonth.options[cmbMonth.selectedIndex].value == '0') {
        return 31;
    }else if( cmbMonth.options[cmbMonth.selectedIndex].value != '0' && cmbYear.options[cmbYear.selectedIndex].value == '0') {
        //don't know the year - assume a leap year to get the most out of the days
        return daysInMonth(2000, cmbMonth.options[cmbMonth.selectedIndex].value);
    }else if( cmbMonth.SelectedValue != "0" && cmbYear.SelectedValue != "0") {
        //know the month and year, so can give an exact number of days
        return daysInMonth(cmbYear.options[cmbYear.selectedIndex].value, cmbMonth.options[cmbMonth.selectedIndex].value);
    }
}

function datePicker_RefreshDays(cmbDate,cmbMonth,cmbYear){
    var seldate = "";
    
    if( cmbDate.selectedIndex != null && cmbDate.selectedIndex >= 0) {
        seldate = cmbDate.options[cmbDate.selectedIndex].value;
    }

    cmbDate.options.length=0;

    addOption(cmbDate,"Day","0");
    
    numDays=datePicker_NumDays(cmbMonth, cmbYear);

    for(num = 1; num <= numDays; num++){
        addOption(cmbDate,num,num);//cast both as strings?
    }


    if (seldate >= 0) {
        cmbDate.selectedIndex = dropdown_ValueToIndex(cmbDate,seldate)!=-1 ? dropdown_ValueToIndex(cmbDate,seldate) : 0;     
    }else{
        cmbDate.selectedIndex=0;
    }
    
}

function dropdown_ValueToIndex(cmb,value){

    if(cmb.options.length == 0)
        return -1;

    for(num = 0;num<cmb.options.length;num++){
        if((cmb.options[num].value*1)==(value*1))
            return num + '';
    }
    
    return -1;
}


function addOption(cmb,text,value){
    var o = document.createElement("OPTION");
    
    o.text=text
    o.value=value
    cmb.options.add(o)
}

function selectOption(ddl,value){
    if (ddl.options.length == 0 ){
        return;
    }
    for(var num=0;num<ddl.options.length;num++){
        if ((ddl.options[num].value == value) || (ddl.name=='cmbArea' && ddl.options[num].value.substring(0,ddl.options[num].value.indexOf('-',0))  == value)){
            ddl.options[num].selected = true;
            break;
        }       
    }
}


var currentImage = 1;
var imageCount = 0;//to be filled on the page using it

function loadImage(_destId,_srcId,_newId,_prev,_next){
    var dest = document.getElementById (_destId);
    var src = document.getElementById (_srcId);
    currentImage=_newId;
    
    dest.src = src.src;
    
    if (currentImage==1){
        document.getElementById (_prev).style.visibility="hidden";
    }else{
        document.getElementById (_prev).style.visibility="visible";
    }
    
    if (currentImage==imageCount){
        document.getElementById (_next).style.visibility="hidden";
    }else{
        document.getElementById (_next).style.visibility="visible";
    }
}

function refreshPreviewText(_pText){
    var lblPv = document.getElementById (_pText);
    
    lblPv.innerHTML=currentImage + ' of ' + imageCount;
    
    if(ie){
        lblPv.innerHTML +="&nbsp;"
    }
}

function advanceImage(value,_destId,_srcPrefix,_prev,_next){
    currentImage = Number(currentImage ) + Number(value);
    
    loadImage(_destId,_srcPrefix + currentImage ,currentImage,_prev,_next);
    
    
}

var t;
var d;

function toplistOn(dv)
{
	dv.className='on';
	clearTimeout(t);
}

function toplistOff(dv)
{
	d=dv;
	t=setTimeout("d.className=''",300);
}

var nPreviousLayerID = 1;


function section(k) {

for (i=1; i<50; i++)
        {
        if (i==k)
                {
                document.getElementById('text'+i).style.display='block';
                document.getElementById('link'+i).className='cur';
	            }
        else if(document.getElementById('text'+i) != null)
				{
					 document.getElementById('text'+i).style.display='none';
					 document.getElementById('link'+i).className='';
                }
        }
}

function nextImage()
{
	for (i=1; i<5; i++)
	{
		if(document.getElementById('text'+i) != null && document.getElementById('text'+i).style.display == 'block')
		{
			if(i=4) i=0;
			else i++;
			section(i);
			i = 5;
		}
	}
}

function prevImage()
{
	for (i=1; i<5; i++)
	{
		if(document.getElementById('text'+i) != null && document.getElementById('text'+i).style.display == 'block')
		{
			if(i=0) i=4;
			else i--;
			section(i);
			i = 5;
		}
	}
}



function fixPNG(element) {
    
  if (/MSIE (5\.5|6).+Win/.test(navigator.userAgent))
  {
    var src;	
    if (element.tagName=='IMG') 
    {
      if (/\.png$/.test(element.src)) 
      {
        src = element.src;
        element.src = "/assets/images/blank.gif"; 
      }
    }
    else 
    {
      src = element.currentStyle.backgroundImage.match(/url\("(.+)"\)/i);
      if (src)
      {
        src = src[1];
        element.runtimeStyle.backgroundImage="none"; 
      }
    }
    if (src) element.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "',sizingMethod='crop')";
  }
}

function ViewRegions(iTierID, sSym)
{
	if( document.getElementById('pnlRegions' + sSym + iTierID).style.display == 'none' )
	{
		document.getElementById('pnlRegions' + sSym + iTierID).style.display = 'block';
	}
	else
	{
		document.getElementById('pnlRegions' + sSym + iTierID).style.display = 'none';
	}
}
