﻿// Image Formatting
//  parameters:
//      el - source image
//      w - desired width
//      h - desired height

function formatImage(el, w, h){
    var img = new Image();
    img.src = el.src;

    var x = img.width;
    var y = img.height;

    if (arguments.length < 3 || h == 0 || x == 0 || y == 0)
        return;
    
    var desiredRatio = w / h;
    var originalRatio = x / y;
    
    if (desiredRatio > originalRatio){
        el.height = h;
        el.width = h * originalRatio;
    }
    else{
        el.width = w;
        el.height = w / originalRatio;
    }
}

function setInnerText(elementId, value){
	elementId = elementId == null ? "" : elementId;
	value = value == null ? "" : value;
	if (elementId != "" && document.getElementById(elementId))
		document.getElementById(elementId).innerHTML = value;
}

function focusElement(elementId){
	alert('focus');
	var obj = document.getElementById(elementId);
	if (obj)
		obj.focus();
}

function show_div(div_name){
    
    var obj = document.getElementById(div_name);
    if (obj) 
        obj.style.display = "block";
}

function hide_div(div_name){
    var obj = document.getElementById(div_name);
    if (obj) 
        obj.style.display = "none";
}

function openPopupWindowLarge(url) 
{
	var w = 900;
	var h = 810;
	var newWin = self.open(url,"","menubar=no,resizable=no,width=" + w + ",height=" + h + ",scrollbars=yes");
}

function openPopupWindow(url) 
{
	var w = 550;
	var h = 400;
	var newWin = self.open(url,"","menubar=no,resizable=no,width=" + w + ",height=" + h + ",scrollbars=yes");
}

function openSalesforceEmailWindow(url)
{
	var w = 690;
	var h = 730;
	var newWin = self.open(url,"","menubar=no,resizable=no,width=" + w + ",height=" + h + ",scrollbars=yes");
}

function getAnchorPosition(anchorname) {
	// This function will return an Object with x and y properties
	var useWindow=false;
	var coordinates=new Object();
	var x=0,y=0;
	// Browser capability sniffing
	var use_gebi=false, use_css=false, use_layers=false;
	if (document.getElementById) { use_gebi=true; }
	else if (document.all) { use_css=true; }
	else if (document.layers) { use_layers=true; }
	// Logic to find position
 	if (use_gebi && document.all) {
		x=AnchorPosition_getPageOffsetLeft(document.all[anchorname]);
		y=AnchorPosition_getPageOffsetTop(document.all[anchorname]);
		}
	else if (use_gebi) {
		var o=document.getElementById(anchorname);
		x=AnchorPosition_getPageOffsetLeft(o);
		y=AnchorPosition_getPageOffsetTop(o);
		}
 	else if (use_css) {
		x=AnchorPosition_getPageOffsetLeft(document.all[anchorname]);
		y=AnchorPosition_getPageOffsetTop(document.all[anchorname]);
		}
	else if (use_layers) {
		var found=0;
		for (var i=0; i<document.anchors.length; i++) {
			if (document.anchors[i].name==anchorname) { found=1; break; }
			}
		if (found==0) {
			coordinates.x=0; coordinates.y=0; return coordinates;
			}
		x=document.anchors[i].x;
		y=document.anchors[i].y;
		}
	else {
		coordinates.x=0; coordinates.y=0; return coordinates;
		}
	coordinates.x=x;
	coordinates.y=y;
	return coordinates;
	}
		
//This function returns an object having .x and .y properties which are the coordinates
//of the named anchor, relative to the window
function getAnchorWindowPosition(anchorname) {
	var coordinates=getAnchorPosition(anchorname);
	var x=0;
	var y=0;
	if (document.getElementById) {
		if (isNaN(window.screenX)) {
			x=coordinates.x-document.body.scrollLeft+window.screenLeft;
			y=coordinates.y-document.body.scrollTop+window.screenTop;
			}
		else {
			x=coordinates.x+window.screenX+(window.outerWidth-window.innerWidth)-window.pageXOffset;
			y=coordinates.y+window.screenY+(window.outerHeight-24-window.innerHeight)-window.pageYOffset;
			}
		}
	else if (document.all) {
		x=coordinates.x-document.body.scrollLeft+window.screenLeft;
		y=coordinates.y-document.body.scrollTop+window.screenTop;
		}
	else if (document.layers) {
		x=coordinates.x+window.screenX+(window.outerWidth-window.innerWidth)-window.pageXOffset;
		y=coordinates.y+window.screenY+(window.outerHeight-24-window.innerHeight)-window.pageYOffset;
		}
	coordinates.x=x;
	coordinates.y=y;
	return coordinates;
	}

//Functions for IE to get position of an object
function AnchorPosition_getPageOffsetLeft (el) {
	var ol=el.offsetLeft;
	while ((el=el.offsetParent) != null) { ol += el.offsetLeft; }
	return ol;
	}
	
function AnchorPosition_getWindowOffsetLeft (el) {
	return AnchorPosition_getPageOffsetLeft(el)-document.body.scrollLeft;
	}	
	
function AnchorPosition_getPageOffsetTop (el) {
	var ot=el.offsetTop;
	while((el=el.offsetParent) != null) { ot += el.offsetTop; }
	return ot;
	}
	
function AnchorPosition_getWindowOffsetTop (el) {
	return AnchorPosition_getPageOffsetTop(el)-document.body.scrollTop;
	}


/***********************************************
* Textarea Maxlength script- © Dynamic Drive (www.dynamicdrive.com)
* This notice must stay intact for legal use.
* Visit http://www.dynamicdrive.com/ for full source code
***********************************************/
function ismaxlength(obj){
	var mlength=obj.getAttribute? parseInt(obj.getAttribute("maxlength")) : ""
	if (obj.getAttribute && obj.value.length > mlength -1)
		obj.value=obj.value.substring(0,mlength - 1)
}

function removeEndLine(obj){
	obj.value = obj.value.replace(/^(\r\n\s*)/g, "");
	obj.value = obj.value.replace(/(\r\n\s*)$/g, "");
}

function focusLogin() {
	var btnElement = $get("lnkLogin");
	if (btnElement == null)
		return;
	if (btnElement.dispatchEvent) {
		var clickevent = document.createEvent("MouseEvents")
		clickevent.initEvent("click", true, true)
		btnElement.dispatchEvent(clickevent);
	}
	else {
		btnElement.click();
	}
}
