function ClearSearch() {
	try {
		var element = window.document.getElementById('SearchKeywords');
		if(element.value=='Search'){
			element.value='';
		}else{}
	} catch(e) {}
}



function WriteSearch() {
	try {
		var element = window.document.getElementById('SearchKeywords');
		if(element.value==''){
			element.value='Search';
		}else{}
	} catch(e) {}
}



ReplaceSearch = function() {
	try {
		var elements = window.document.getElementById('SearchKeywords');
		if(window.addEventListener){	
			elements.addEventListener('focus', ClearSearch, true);
			elements.addEventListener('blur', WriteSearch, true);	
		}else{
			elements.attachEvent("onfocus",ClearSearch);
			elements.attachEvent("onblur",WriteSearch);
		}
	} catch(e) {}
}



function ClearCharmSearch() {
	try {
		var element = window.document.getElementById('CharmSearchKeywords');
		if(element.value=='KEYWORD OR STYLE #'){
			element.value='';
		}else{}
	} catch(e) {}
}



function WriteCharmSearch() {
	try {
		var element = window.document.getElementById('CharmSearchKeywords');
		if(element.value==''){
			element.value='KEYWORD OR STYLE #';
		}else{}
	} catch(e) {}
}



ReplaceCharmSearch = function() {
	try {
		var elements = window.document.getElementById('CharmSearchKeywords');
		if(window.addEventListener){
			elements.addEventListener('focus', ClearCharmSearch, true);
			elements.addEventListener('blur', WriteCharmSearch, true);
		}else{
			elements.attachEvent("onfocus",ClearCharmSearch);
			elements.attachEvent("onblur",WriteCharmSearch);
		}
	} catch(e) {}
}



function ClearLocateSearch() {
	try {
		var element = window.document.getElementById('JewelerSearch');
		if(element.value=='City, State/Prov, or Zip'){
			element.value='';
		}else{}
	} catch(e) {}
}



function WriteLocateSearch() {
	try {
		var element = window.document.getElementById('JewelerSearch');
		if(element.value==''){
			element.value='City, State/Prov, or Zip';
		}else{}
	} catch(e) {}
}



ReplaceLocateSearch = function() {
	try {
		var elements = window.document.getElementById('JewelerSearch');
		if(window.addEventListener){	
			elements.addEventListener('focus', ClearLocateSearch, true);
			elements.addEventListener('blur', WriteLocateSearch, true);	
		}else{
			elements.attachEvent("onfocus",ClearLocateSearch);
			elements.attachEvent("onblur",WriteLocateSearch);
		}
	} catch(e) {}
}



function CharmSearchOn() {
	try {
		var element = window.document.getElementById('CharmSearchSubmit');
		element.src='/files/images/template/Search_hover.png';
	} catch(e) {}
}



function CharmSearchOff() {
	try {
		var element = window.document.getElementById('CharmSearchSubmit');
		element.src='/files/images/template/Search.png';
	} catch(e) {}
}



CharmSearchHover = function() {
	try {
		var elements = window.document.getElementById('CharmSearchSubmit');
		if(window.addEventListener){	
			elements.addEventListener('mouseover', CharmSearchOn, true);
			elements.addEventListener('mouseout', CharmSearchOff, true);
		}else{
			elements.attachEvent("onmouseover",CharmSearchOn);
			elements.attachEvent("onmouseout",CharmSearchOff);
		}
	} catch(e) {}
}



SearchReplaces = function() {
	try {
		//ReplaceSearch();
		ReplaceCharmSearch();
		ReplaceLocateSearch();
		ReplaceLocateSearchHome();
		CharmSearchHover();
		LocateSearchHover();
	} catch(e) {}
}



if(window.addEventListener) { // gecko, safari, konqueror and standard
	window.addEventListener('load', SearchReplaces, false);
} else if(document.addEventListener) { // opera 7
	document.addEventListener('load', SearchReplaces, false);
} else if(window.attachEvent) { // win/ie
	window.attachEvent('onload', SearchReplaces);
} else { // mac/ie5
	if(typeof window.onload == 'function') {
		var existing = onload;
		window.onload = function() {
			existing();
			SearchReplaces();
		}
	} else {
		window.onload = function() {
			SearchReplaces();
		}
	}
}



// Manage display and hide of Email to Friend app and Bookmarks app

function CloseSelf(ElementID) {
	try {
		var obj = document.getElementById(ElementID);
		obj.style.display='none';
	}
	catch(e){}
}



function DisplayElement(ElementID) {
	try {
		var obj = document.getElementById(ElementID);
		obj.style.display='inline';
	}
	catch(e){}
}



function AttachHelpClass(ElementID) {
	try {
		var obj = document.getElementById(ElementID);
		obj.className='HelpBox';
	}
	catch(e){}
}



function AttachHelpClose(ElementID,CloserElementID) {
	try {
		// Attach to the element
		var obj = document.getElementById(CloserElementID);
		obj.onclick=function(){CloseSelf(ElementID);}
	}
	catch(e){}
}



function getElementPosition(elemID) {
   	try {
		var offsetTrail = document.getElementById(elemID);
		var offsetLeft = 0;
		var offsetTop = 0;
		while (offsetTrail) {
			offsetLeft += offsetTrail.offsetLeft;
			offsetTop += offsetTrail.offsetTop;
			offsetTrail = offsetTrail.offsetParent;
		}
		if (navigator.userAgent.indexOf("Mac") != -1 && 
			typeof document.body.leftMargin != "undefined") {
			offsetLeft += document.body.leftMargin;
			offsetTop += document.body.topMargin;
		}
		//alert("left:" + offsetLeft + ", " + "top:" + offsetTop);
		return {left:offsetLeft, top:offsetTop};
	}catch(e){
		return {left:100, top:100};
	}

	//return "left:" + offsetLeft + ", " + "top:" + offsetTop;
}



function ShowHelp(ElementID,CallerID,strWidth,strOffsetTop,strOffsetLeft) {
	try {
		var CallerTop = getElementPosition(CallerID).top;
		var CallerLeft = getElementPosition(CallerID).left;
		var obj = document.getElementById(ElementID);
		var ParentTop = CallerTop + strOffsetTop;
		var ParentLeft = CallerLeft - strOffsetLeft;
		obj.style.display = 'block';
		obj.style.width = strWidth + 'px';
		if(CallerLeft == 0){
			obj.style.left = '45%';
		}else{
			obj.style.left = ParentLeft + 'px';
		}
		if(CallerTop == 0){
			obj.style.top = '35%';
		}else{
			obj.style.top = ParentTop + 'px';
		}
	}
	catch(e){}
}

function InitializeHelpBox(strBoxId,strLinkID,strCloser) {
	try {
		AttachHelpClose(strBoxId,strCloser);
		AttachHelpClass(strBoxId);
		DisplayElement(strLinkID);
	}
	catch(e){}
}



// Basic validation for Email to Friend Application, can be used on other forms

function generateError(elemID,errMsg) {
	try {
		var obj = document.getElementById(elemID);
		obj.className="error";
		try{
			var obj2 = document.getElementById('lbl'+elemID);
			obj2.className="error";
		}catch(e){}
		putFocusOnElement(elemID);
		//alert(errMsg);
	}catch(e){}
}



function putFocusOnElement(elemID){
	// Put focus on an element by passing its ident
	try{
		document.getElementById(elemID).focus();
	}
	catch(e){}
}



function ValidateBasic(elemID,errMsg,bolRequired){
	var strError = false;
	// Initiate basic validation, at least for required fields
	try{
		if(document.getElementById(elemID).value == '' && bolRequired == 1){
			strError = 1;
			generateError(elemID,errMsg);
			CollectErrors(errMsg);
			return strError;
		}else{
			strError = false;
			var obj = document.getElementById(elemID);
			obj.className="";
			try{
				var obj2 = document.getElementById('lbl'+elemID);
				obj2.className="";
			}catch(e){}
			return 0;
		}
	}
	catch(e){}
}



function ValidateEmail(elemID,errMsg,bolRequired){
	var strError = false;
	var obj = document.getElementById(elemID);
	// Initiate basic validation, at least for required fields
	try{
		// is it blank and required?
		if(obj.value == '' && bolRequired == 1){
			strError = 1;
			generateError(elemID,errMsg);
			CollectErrors(errMsg);
			return strError;
		// is it formatted as an email address?
		} else if(((obj.value.indexOf(".") < 3) || (obj.value.indexOf("@") < 2)) && obj.value != ''){
			strError = 1;
			generateError(elemID,errMsg);
			CollectErrors(errMsg);
			return strError;
		}else{
			strError = false;
			obj.className="";
			try{
				var obj2 = document.getElementById('lbl'+elemID);
				obj2.className="";
			}catch(e){}
			return 0;
		}
	}
	catch(e){}
}



function CollectErrors(errMsg){
	var errorText;
	var ErrBox = document.getElementById('ErrMsg');
	ErrBox.innerText = errMsg + '\n' + ErrBox.innerText;
	//alert(ErrBox.innerText);
}



function CheckFields() {
	try {
		var ErrBox = document.getElementById('ErrMsg');
		var strError = 0
		strError = strError + Validations();

		if((ErrBox.innerText != '') && (strError > 0)){
			alert(ErrBox.innerText);
			ErrBox.innerText = '';
		}

		//alert(strError);
		if(strError < 1){
		}else{
			//if(IsSubmit == "true"){
				//stop the submit
				return false;
			//}
		}

	}catch(e){}
}



//change the opacity for different browsers
function changeOpac(opacity, id) {
	var object = document.getElementById(id).style;
	object.opacity = (opacity / 100);
	object.MozOpacity = (opacity / 100);
	object.KhtmlOpacity = (opacity / 100);
	object.filter = "alpha(opacity=" + opacity + ")";
}



function shiftOpacity(id, millisec) {
	//if an element is invisible, make it visible, else make it ivisible	
	if(document.getElementById(id).style.opacity == 0 || document.getElementById(id).style.opacity == undefined) {
		opacity(id, 0, 100, millisec);
	} else {
		opacity(id, 100, 0, millisec);
	}
}



function currentOpac(id, opacEnd, millisec) {
	//standard opacity is 100
	var currentOpacity = 100;

	//if the element has an opacity set, get it
	if(document.getElementById(id).style.opacity < 100) {
		currentOpacity = document.getElementById(id).style.opacity * 100;
	}

	//call for the function that changes the opacity
	opacity(id, currentOpacity, opacEnd, millisec);
}



function HideDiv(id){
	document.getElementById(id).style.display="none";
}



function HomeContentRotator(rotatorLength, numItems) {
	try{
		var randNum = Math.floor((Math.random()*numItems)+1);
		for(var i=1; i<=numItems; i++){
			changeOpac(0, "HomeContent_"+i);
			var object = document.getElementById("HomeContent_"+i).style;
			object.display = "block";
			object.position = "absolute";
			object.zIndex = (numItems-i)+1;
		}
		shiftOpacity("HomeContent_"+randNum, 2000);
		if(randNum == numItems){
			nextDiv = 1;
		}
		else {
			nextDiv = randNum+1;
		}
		var t = setTimeout("FadeHomeContent("+nextDiv+", "+t+", "+numItems+", "+rotatorLength+");", rotatorLength*1000);
	}catch(e){}
}



function clearEmailFields(id){
	try {
		var elm = document.getElementById(id);
		if(elm.value == "Subject" || elm.value == "To" || elm.value == "From"){
			elm.value = "";
		} else if(id.match("Subject") != null && elm.value == ""){
			elm.value = "Subject";
		} else if(id.match("ToEmailAddress") != null && elm.value == ""){
			elm.value = "To";
		} else if(id.match("FromEmailAddress") != null && elm.value == ""){
			elm.value = "From";
		}
	}catch(e){}
}



// Flash video and link insertion

function WriteFlashClick(VidFile,ThumbFile) {
	try {
		var playerVersion = swfobject.getFlashPlayerVersion(); // returns a JavaScript object
		if (swfobject.hasFlashPlayerVersion("9.0.0")) {
			swfobject.embedSWF("/files/flash/flvplayer.swf", "VidClip", "320", "240", "9.0.0", false, {file:VidFile, image:ThumbFile, width:"320", height:"240", autostart:"true", overstretch:"none"}, {allowfullscreen:"true", wmode:"transparent"}, false );
		}else{}
	} catch(e) {}
}



function WriteFlash(SWFPath,SWFWidth,SWFHeight,SWFParams) {
	try {
		var str = '\n';
		var NewParams = '';
		str+='	<object type="application\/x-shockwave-flash" data="' + SWFPath + '" width="' + SWFWidth + '" height="' + SWFHeight + '" title="">\n';
		str+='		<param name="wmode" value="transparent">\n';
		str+='		<param name="movie" value="' + SWFPath + '">\n';
		if(typeof(SWFParams) != "undefined"){
			var SWFParamsArray = SWFParams.split(';');
			for (var i=0; i<SWFParamsArray.length; i++) {
				var EachParam = SWFParamsArray[i].split(',');
				NewParams+='		<param name="' + EachParam[0] + '" VALUE="' + EachParam[1] + '">\n';
			}
			str+=NewParams;
		}
		str+='	<\/object>\n';
		document.write(str);
	} catch(e) {}
}



function pngfixForImageButton(elmId) {
	var elm = document.getElementById("CharmSearchButton")
	var elmSrc = elm.src;

	elm.src = "/files/images/std/spacer.gif";
	elm.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+elmSrc+"', sizingMethod='image')";
   
}
