// Add to favourites

function AddToFavourites(title,url)
{	
	if (window.sidebar) 
	{	// firefox/netscape
		window.sidebar.addPanel(title, url,""); 
	} 
	else if( document.all ) 
	{	//ie
		window.external.AddFavorite(url, title); 
	} 
}

// Popup windows

function winBRopen(theURL, Name, popW, popH, scroll) { // V 1.0
	var winleft = (screen.width - popW) / 2;
	var winUp = (screen.height - popH) / 2;
	winProp = 'width='+popW+',height='+popH+',left='+winleft+',top='+winUp+',scrollbars='+scroll+',resizable=1';
	Win = window.open(theURL, Name, winProp);
	if (parseInt(navigator.appVersion) >= 4){
		Win.window.focus();
	}
	return false;
}

// Iframe Events

function SetIframeHeight(h) {
    document.getElementById('inline_link').height = h;
}

function HideIframeLoading() {
    // var objLoadingDiv = document.getElementById('iframe_loading');
    // objLoadingDiv.style.visibility = 'hidden';
    // var objLoadingDivInner = document.getElementById('iframe_loading_inner');
    // objLoadingDivInner.style.visibility = 'hidden';
    document.getElementById('overlaymessage').style.display = 'none';
    document.getElementById('inline_link').style.visibility = 'visible';
}

function SetupIframeLoading() {
    //var objLoadingDiv = document.getElementById('iframe_loading');
    //objLoadingDiv.style.visibility = 'visible';
    //var objLoadingDivInner = document.getElementById('iframe_loading_inner');
    //objLoadingDivInner.style.visibility = 'visible';

    var objIframe = document.getElementById('inline_link');
    
    try {
        objIframe.style.visibility = 'hidden'; 
        document.getElementById('overlaymessage').style.display = 'block';
        InnerOverlayMessage('... loading ...');
    } catch(err) {}    
    
    if (document.addEventListener) {
        objIframe.addEventListener('load', HideIframeLoading, false);
    } else if (document.attachEvent) {
        objIframe.attachEvent('onload', HideIframeLoading, false);
    }
}

// Limit textarea, input

function LimitText(limitField, limitCount, limitNum) {
    if (limitField.value.length > limitNum) {
		limitField.value = limitField.value.substring(0, limitNum);
		limitField.scrollTop = limitField.scrollHeight;
		//if limitCount not provided alert user when limit has been reached
        if (limitCount == null) {
            alert('The limit for this field has been reached (' + limitNum + ' characters).');
		}
	} else {
        //if limitCount provided update with characters remaining
        if (limitCount != null) {
            var charsLeft = limitNum - limitField.value.length;
            limitCount.innerHTML = charsLeft + ' characters remaining';
        }
	}
}

// Validate price

function IsPrice(strString) {
    var strValidChars = "$0123456789.";
    var strChar;
    var blnResult = true;

    if (strString.length == 0) return false;

    for (i = 0; i < strString.length && blnResult == true; i++) {
        strChar = strString.charAt(i);
        if (strValidChars.indexOf(strChar) == -1) {
            blnResult = false;
        }
    }
    return blnResult;
}
function ValidatePrice(strString) {
    if (IsPrice(strString)) {
        return true;
    } else {
        alert('Invalid price.');
        return true;
    }
}

// Toggle visibility

function ShowHide(elementid) {
    elem = document.getElementById(elementid)
    if (elem.style.display == 'none') {
        elem.style.display = 'block'
    } else {
        elem.style.display = 'none'
    } 
}

// Hide elements

function HideElements(elements) {
    var i = 0;
    for (i = 0; i <= elements.length - 1; i++) {
        document.getElementById(elements[i]).style.display = 'none';
    }
}

// Display overlay message

function InnerOverlayMessage(messagetext) {
    document.getElementById('overlaymessage').innerHTML = '<table cellspacing="0" width="100%" height="100%"><tr><td width="100%" height="100%" align="center" valign="center"><div><p id="messagetext">' + messagetext + '</p><img id="messageprogress" src="/images/loading3.gif" /></div></td></tr></table>';
}

function ShowOverlayMessage(submitbutton,messagetext) {
    try {
        if (submitbutton != '') {
            document.getElementById(submitbutton).disabled=true;
        }
        document.getElementById('contentwrap').className = 'dimmed';  
        document.getElementById('overlaymessage').style.display = 'block';
        InnerOverlayMessage(messagetext);
        document.body.style.cursor='wait';

    } catch(err) {}
    setTimeout('InnerOverlayMessage(\'' + messagetext + '\');',500);
    return true;                           
}

// Disable multiple submit

function DisableMultipleSubmit(submitbuttons) {
    try {
        if (submitbuttons != '') {
            for (i = 0; i < submitbuttons.length; i++) {
                document.getElementById(submitbuttons[i]).disabled=true;
            }
        }
        document.body.style.cursor='wait';
    } catch(err) {}
    return true;
}

// Sine-in-out

function SineInOut(t, b, c, d) {
	return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;
}

// Cookies

function setCookie(c_name,value,exdays) {
    var exdate=new Date();
    exdate.setDate(exdate.getDate() + exdays);
    var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
    document.cookie=c_name + "=" + c_value;
}

function getCookie(c_name) {
    var i,x,y,ARRcookies=document.cookie.split(";");
    for (i=0;i<ARRcookies.length;i++) {
        x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
        y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
        x=x.replace(/^\s+|\s+$/g,"");
        if (x==c_name) {
            return unescape(y);
        }
    }
}
