/* Generic Popup Window */
var childWindow = null;
var isNetscape6 = (!document.all && !document.layers && navigator.appName == "Netscape" && parseInt(navigator.appVersion) >=5)?true:false;
function genericPopup(popupURL, popupWidth, popupHeight, extraAtt) {
	extraAtt = (extraAtt == null) ? "" : "," + extraAtt;
	attributes = "width=" + popupWidth + ",height=" + popupHeight + extraAtt;
	if (!isNetscape6 && childWindow && childWindow != null && childWindow.close) childWindow.close(); // DD
	childWindow = window.open(popupURL, "Orange", attributes);
}

/**
 * Blank Functions
 * These functions are used in the below functions, and can be recreated
 * on a page to alter the page loan and unload process
 * doc_onload are to be overridden on the page, body_onload are default
 * (can be overridden if necessary)
 */
function ora_doc_onload() {}
function ora_doc_onunload() {}
function ora_body_onload() { ora_doc_onload(); }
function ora_body_onunload() { ora_doc_onunload(); }

/* Flash Version Info */
var iLatestFlashVersion = 20;
var iMinimumFlashVersion = 3;
var iFlashVersion = -1;

/* Variable must be global for VBScript to work correctly. */
var thisFlashVersion;

function ora_flash_getIEVersion() {
	document.write('<scr'+'ipt language="VBScript">\n');
	document.write('on error resume next\n');
	document.write('For i = 2 to '+iLatestFlashVersion+'\n');
	document.write('	If Not(IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash." & i))) Then\n');
	document.write('	Else\n');
	document.write('		thisFlashVersion = i\n');
	document.write('	End If\n');
	document.write('Next\n');
	document.write('</scr'+'ipt>\n');

	return thisFlashVersion;
}

function ora_flash_setVersion() {
	if (navigator.plugins.length > 0) {
		if (navigator.appName == "Netscape" && parseInt(navigator.appVersion) <= 4) {
			/* Plugin detect, no VBScript support */
			navigator.plugins.refresh(false);
		}

		numPlugins = navigator.plugins.length;
		for(var i=0; i<numPlugins; i++)	{
			plugDesc = navigator.plugins[i].description;
			iFlashVersion = (plugDesc.indexOf("Flash") != -1) ? parseInt(plugDesc.charAt(parseInt(plugDesc.indexOf("Flash"))+6)) : 0;
			if(iFlashVersion > 0) {
				return;
			}
		}
	} else if(navigator.userAgent.indexOf("Mac") == -1 && (document.all || navigator.appName.indexOf("Opera") != -1)) {
		/* No plugin detect, VBScript support */
		iFlashVersion = ora_flash_getIEVersion();
	} else {
		/* No plugin detect, no VBScript support */
		iFlashVersion = iLatestFlashVersion;
	}
}

/* New Flash Functions */
var flashArray = new Array();
var flashIncludes = new Array();
var imageArray = new Array();

/* only 1 include allowed - always overwrites previous */
function addFlashInclude(flashId, include) {
	flashIncludes[flashId] = include;
}

/* Multiple calls with the same imageId, add multiple URLs to that imageId */
function addImageURL(imageId, imageLinkURL, imageFile, imageWidth, imageHeight, imageDescription, imageRollover, imagePopup) {
	imageArray[imageId] = new Array();
	if (imageFile != '')	imageArray[imageId].imageFile = imageFile;
	if (imageWidth != '')	imageArray[imageId].imageWidth = imageWidth;
	if (imageHeight != '')	imageArray[imageId].imageHeight = imageHeight;
							imageArray[imageId].URL = imageLinkURL;
							imageArray[imageId].imageDescription = imageDescription;
							imageArray[imageId].imageRollover = imageRollover;
							imageArray[imageId].imagePopup = imagePopup;
}

function addFlashURL(flashId, flashLinkURL, flashLinkDescription, flashLinkText, flashFile, flashWidth, flashHeight, backupImage, backupLink) {
	var idExists = (flashArray[flashId]) ? true : false;
	if (!idExists) {
		flashArray[flashId]				= new Array();
		if (flashWidth != null) 		flashArray[flashId].flashWidth	= flashWidth;
		if (flashHeight != null)		flashArray[flashId].flashHeight	= flashHeight;
		if (backupImage != null)		flashArray[flashId].backupImage	= backupImage;
		if (backupLink != null) 		flashArray[flashId].backupLink	= backupLink;
		if (!flashArray[flashId].URLs)	flashArray[flashId].URLs		= new Array();
										flashArray[flashId].params		= new Array();
		if (flashFile != null)  		flashArray[flashId].flashFile	= flashFile;
	}

	var UrlsLen = flashArray[flashId].URLs.length;
	flashArray[flashId].URLs[UrlsLen]				= new Array();
	flashArray[flashId].URLs[UrlsLen].url			= flashLinkURL;
	flashArray[flashId].URLs[UrlsLen].text			= flashLinkText;
	flashArray[flashId].URLs[UrlsLen].description	= flashLinkDescription;
	if (idExists) {
		flashArray[flashId].URLs[UrlsLen].openInNewWindow = (flashFile != null) ? 'true' : 'false';
	}
}

/* Flash <PARAM> objects */
function addFlashParam(flashId, flashParamName, flashParamValue) {
	if (flashArray[flashId]) {
		var paramLength = flashArray[flashId].params.length;
		flashArray[flashId].params[paramLength] = new Array();
		flashArray[flashId].params[paramLength].name = flashParamName;
		flashArray[flashId].params[paramLength].value = flashParamValue;
	}
}

function getAdditionalParameters(flashId) {
	var params = flashArray[flashId].params;
	var out = '';
	for (var i=0; i<params.length; i++) {
		out += '<PARAM NAME="'+params[i].name+'" VALUE="'+params[i].value+'">\n';
	}
	return out;
}

/* Adds the page query String to the Flash object */
function getQueryString(flashId, flashURLs, include, params) {
	var tempStr = '?flashId='+flashId;
	for (var i=0; i<flashURLs.length; i++) {
		tempStr += '&url'+(i+1)+'='+escape(flashURLs[i].url);
		tempStr += '&text'+(i+1)+'='+escape(flashURLs[i].text);
		tempStr += '&newWindow'+(i+1)+'='+flashURLs[i].openInNewWindow;
	}
	if (include != null && include != '') {
		tempStr += '&includeFlash='+include;
	}
	for (var i=0; i<params.length; i++) {
		tempStr += '&'+params[i].name+'='+escape(params[i].value);
	}
	return tempStr;
}

/* Creates the flashVars array */
function getFlashVars(flashId, flashURLs, include, params) {
	var retval = new Array();
	retval[retval.length] = 'flashId=' + flashId;
	for (var i=0; i<flashURLs.length; i++) {
		retval[retval.length] = 'url'+ (i+1) +'='+ escape(flashURLs[i].url);
		retval[retval.length] = 'text'+ (i+1) +'='+ escape(flashURLs[i].text);
		retval[retval.length] = 'newWindow'+ (i+1) +'='+ (flashURLs[i].openInNewWindow != null) ? flashURLs[i].openInNewWindow : false;
	}
	if (include != null && include != '') {
		retval[retval.length] = 'includeFlash='+ include;
	}
	for (var i=0; i<params.length; i++) {
		retval[retval.length] = params[i].name +'='+ escape(params[i].value);
	}
	return retval;
}

/* Analyst Flash Tracking Requirements */
function addTrackingInfo(flashId, trackingType, trackingPosition, handsetBrand, handsetName) {
	var objArray = (flashArray[flashId]) ? flashArray[flashId] : imageArray[flashId];

	if (trackingPosition) objArray.trackingPosition = trackingPosition;
	if (trackingType) objArray.trackingType = trackingType;
	if (handsetBrand) objArray.handsetBrand = handsetBrand;
	if (handsetName) objArray.handsetName = handsetName;
}

/* Inserts flash movie onto the page */
function insertFlash(flashId, showBackup) {
	var flOut = '';
	if (flashArray[flashId] && showBackup && iFlashVersion <= 0) {
		var backupWidth = flashArray[flashId].flashWidth;
		var backupHeight = flashArray[flashId].flashHeight;
		var backupImageSrc = flashArray[flashId].backupImage;
		var backupURL = flashArray[flashId].backupLink;

		if (backupURL != '') { flOut += '<a href="'+backupURL+'" class="norollover">'; }
		flOut += '<img src="'+backupImageSrc+'" width="'+backupWidth+'" height="'+backupHeight+'" alt="" border="0" />';
		if (backupURL != '') { flOut += '</a>'; }
	} else if (!flashArray[flashId] && imageArray[flashId]) {
		var img = imageArray[flashId];
		var sClass = (img.imageRollover) ? ' CLASS="uniqueClick"' : ' CLASS="uniqueClick norollover"';
		var sPopup = (img.imagePopup) ? ' TARGET="'+img.imagePopup+'"' : '';
		var trackingType = (imageArray[flashId].trackingType) ? 'trackingType="'+imageArray[flashId].trackingType+'" ' : '';
		var trackingPosition = (imageArray[flashId].trackingPosition) ? 'position="'+imageArray[flashId].trackingPosition+'" ' : '';
		var handsetBrand = (imageArray[flashId].handsetBrand) ? 'handsetBrand="'+imageArray[flashId].handsetBrand+'" ' : '';
		var handsetName = (imageArray[flashId].handsetName) ? 'handsetName="'+imageArray[flashId].handsetName+'" ' : '';
		var TRACKING = trackingType + trackingPosition;

		if (img.URL != '') { flOut += '<A '+TRACKING+'HREF="'+img.URL+'"'+sClass+''+sPopup+'>'; }
		flOut += '<IMG SRC="'+img.imageFile+'" WIDTH="'+img.imageWidth+'" HEIGHT="'+img.imageHeight+'" ALT="'+img.imageDescription+'" BORDER="0">';
		if (img.URL != '') { flOut += '</A>'; }
	} else if (flashArray[flashId]) {
		var flashFilePath = flashArray[flashId].flashFile;
		var flashWidth = flashArray[flashId].flashWidth;
		var flashHeight = flashArray[flashId].flashHeight;
		var flashURLs = flashArray[flashId].URLs;
		var backupImageSrc = flashArray[flashId].backupImage;
		var backupURL = flashArray[flashId].backupLink;
		var include = flashIncludes[flashId];
		var params = flashArray[flashId].params;

		// Change existing params into new flashVars
		var flashVars = getFlashVars(flashId, flashURLs, include, params);

		flOut = buildFlashObject('oraFlash'+flashId, flashWidth, flashHeight, flashFilePath, flashVars, backupImageSrc, backupURL);
	}
	document.write(flOut);
}

// Creates a Flash Object based on passed in parameters
function printFlashObject(name, width, height, flashSRC, flashParams, backupSRC, backupURL) {
	var output = buildFlashObject(name, width, height, flashSRC, flashParams, backupSRC, backupURL);
	document.write(output);
}
function buildFlashObject(name, width, height, flashSRC, flashParams, backupSRC, backupURL) {
	var flOut = '';
	if (iFlashVersion > 0) {
		flOut += '<object name="'+ name +'" id="'+ name +'" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="'+ width +'" height="'+ height +'" codebase="'+ location.protocol +'//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab">\n';
		flOut += '<param name="movie" value="'+ flashSRC +'">\n';
		flOut += '<param name="play" value="true">\n';
		flOut += '<param name="loop" value="true">\n';
		flOut += '<param name="menu" value="false">\n';
		flOut += '<param name="quality" value="best">\n';
		flOut += '<param name="scale" value="noscale">\n';
		flOut += '<param name="flashVars" value="'+ flashParams.join('&') +'">\n';
		flOut += '<embed name="'+ name +'" id="'+ name +'" src="'+ flashSRC +'" flashVars="'+ flashParams.join('&') +'" width="'+ width +'" height="'+ height +'" menu="false" loop="true" play="true" scale="noscale" quality="best" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="'+ location.protocol +'//www.macromedia.com/go/getflashplayer"></embed>\n';
		flOut += '</object>\n';
	} else if (backupSRC != null) {
		if (backupURL != null) {
			flOut += '<a space="" href="'+backupURL+'" target="_blank" class="norollover">';
		}
		flOut += '<img src="'+backupSRC+'" width="'+width+'" height="'+height+'" border="0" />';
		if (backupURL != null) {
			flOut += '</a>';
		}
	} else {
		flOut += '<a space="" href="http://www.macromedia.com/" target="_blank" class="norollover">';
		flOut += '<img src="/images/flash_backup/'+width+'_'+height+'.gif" width="'+width+'" height="'+height+'" border="0"';
		flOut += ' alt="Sorry!\nYou need a Flash Player to view this content.\n\nPlease visit the Macromedia website for more information about Flash Player and to download this free software (http://www.macromedia.com/)\n\nOrange does not accept any responsibility for software downloaded from third party sites." />';
		flOut += '</a>';
	}

	return flOut;
}

var flashIds = new Array();

/* Random Flash/Image Insert */
var randNum = 0;
function getRandNum() {
	randNum = parseInt(Math.random() * flashIds.length);
	randNum = isNaN(randNum) ? 0 : randNum;
}
function getRandFlashId() { return flashIds[randNum]; }

/* Set Flash Version */
ora_flash_setVersion();

/* used by inc/search_handsets.jsp */
function leaveWarning(selection,target,message) {
	if (selection.indexOf(target) < 0) {
		alert(message);
	}
}

/* used by inc/showphone_pagenumbers.jsp */
function actionBrowseCompatibleHandsets(offset) {
	var frm = document.forms['yourPlanBrowse'];
	frm.elements['mapping'].value = 'handsets';
	frm.elements['offset'].value = offset;

	var frm2 = document.forms['buyTalkshareHandsets'];
	var completedHandsetIds = new Array();
	if (frm2 != null) {
		for (var i=0; i<frm2.elements.length; i++) {
			if (frm2.elements[i].name.toString().indexOf("handsetIds") != -1) {
				var ele = frm2.elements[i];
				if (!completedHandsetIds[ele.name]) {
					if (frm.elements[ele.name] != null) {
						frm.elements[ele.name].value = ele.value;
						completedHandsetIds[ele.name] = true;
					}
				}
			}
		}
	}

	frm.submit();
}

/* used by inc/showphone_pagenumbers.jsp */
function actionBrowsePaginatedHandsets(offset){
	var frm = document.forms['paginationTop'];
	frm.elements['offset'].value = offset;
	frm.submit();
}

/* Talkshare phone browsing */
function actionBrowseHandset(handsetId) {
	var browseFrm = document.forms['browseTalkshareHandsets'];
	var buyFrm = document.forms['buyTalkshareHandsets'];
	browseFrm.action = servletPath + '/yourplan/browse';
	browseFrm.elements['handsetId'].value = handsetId;
	browseFrm.elements['mapping'].value = 'handset';
	copyFields(buyFrm,browseFrm,'handsetIds(');
	browseFrm.submit();
}

function actionBackInStock(handsetId) {
	var frm = document.forms['yourPlanNotification'];
	frm.action = servletPath + '/backinstock/details';
	frm.elements['handsetId'].value = handsetId;
	frm.submit();
}

function actionComingSoon(handsetId,servicePlanTypeId) {
	var frm = document.forms['yourPlanNotification'];
	frm.action = servletPath + '/comingsoon/select';
	frm.elements['handsetId'].value = handsetId;
	frm.elements['servicePlanTypeId'].value = servicePlanTypeId;
	frm.submit();
}

function updateMinHandsetsCount(formObj) {
	var count = 0;
	var hstIds = new Array();
	for (var i=0; i<formObj.elements.length; i++) {
		var ele = formObj.elements[i];
		if (ele.name.toString().indexOf("handsetIds") != -1) {
			if (!hstIds[ele.name] && !isNaN(ele.value) && parseInt(ele.value) > 0) {
				count += parseInt(ele.value);
			}
			hstIds[ele.name] = ele.value;
		}
	}
	if (count >= 1) {
		for (var i=0; i<formObj.elements.length; i++) {
			var ele = formObj.elements[i];
			if (ele.name.toString().indexOf("minSharers") != -1) {
				ele.value = count;
			}
		}
	}
}

/* used by inc/sort.jsp */
function actionSortCompatibleDevices(form, isCompatibleDevices) {
	if (isCompatibleDevices) {
		var frm = document.forms['yourPlanBrowse'];
		frm.elements['mapping'].value = 'handsets';
		frm.elements['sort'].value = getSelectedRadioValue(form, 'sort');
		frm.elements['offset'].value = '';
		frm.submit();
		return false;
	} else {
		var sortList = form.elements['sort'];
		var type = TYPE_ALL;
		for (var i=0; i<sortList.length; i++) {
			if (sortList[i].checked && (sortList[i].value == 1 || sortList[i].value == 2)) {
				type = TYPE_PAYM;
			} else if (sortList[i].checked && (sortList[i].value == 3 || sortList[i].value == 4)) {
				type = TYPE_PAYG;
			} else if (sortList[i].checked && (sortList[i].value == 5 || sortList[i].value == 6)) {
				type = TYPE_UPGR;
			}
		}
		form.action = actionPaths[type];
	}
	return true;
}
function getSelectedRadioValue(frm, eleName) {
	for (var i=0; i<frm.elements[eleName].length; i++) {
		if (frm.elements[eleName][i].checked) {
			return frm.elements[eleName][i].value;
		}
		if (frm.elements[eleName][i].selected) {
			return frm.elements[eleName][i].value;
		}
	}
	return 0;
}

/* Used by various other scripts */
function getElement(strId) {
	if (document.getElementById) {
		return document.getElementById(strId);
	} else if (document.all) {
		return document.all[strId];
	}
	return null;
}

function closePopup(url) {
	if (childWindow != null) childWindow.close();
	childWindow = null;
	document.location.href = url;
}

function gotoPage(pageNum) {
	var frm = document.forms['pager'];
	frm.elements['page'].value = pageNum;
	frm.submit();
}

function browseFeatures(isTalkshare) {
	var browseFrmName = (isTalkshare) ? 'browseTalkshareHandsets' : 'compatibleHandsetsForm';
	var browseFrm = document.forms[browseFrmName];
	if (isTalkshare) {
		buyFrm = document.forms["buyTalkshareHandsets"];
		if (buyFrm != null) {
			copyFields(buyFrm,browseFrm,"handsetIds");
		}
	}
	browseFrm.submit();
}

function copyFields(objFromForm,objToForm,fieldName) {
	if (objFromForm != null && objFromForm.elements != null && objToForm != null && fieldName != null && fieldName.length > 0) {
		var selectedField = "";
		for (var i=0; i < objFromForm.elements.length; i++) {
			var objFromField = objFromForm.elements[i];
			var fromFieldName = objFromField.name.toString();
			var fromFieldValue = objFromField.value.toString();
			if (fromFieldName.indexOf(fieldName) == 0) {
				if (objFromField.type != "hidden") {
					selectedField = fromFieldName;
				} else if (fromFieldName == selectedField) {
					continue;
				}  
				if (fromFieldValue != null && fromFieldValue != "") {
					var objToField = null;
					if (objToForm.elements[fromFieldName] != null) {
						objToField = objToForm.elements[fromFieldName];
					} else {
						objToField = document.createElement('input');
						objToField.type = 'hidden';
						objToField.name = objFromField.name;
						objToForm.appendChild(objToField);
					}
					if (objToField != null) {
						objToField.value = objFromField.value;
					}
				}
			}
		}
	}
}