var win1Open = null
var win2Open = null
var win3Open = null
var win4Open = null

var browserName=navigator.appName; 

function openPopUp(windowURL, windowName, windowWidth, windowHeight){
  var winHandle = window.open(windowURL,windowName,"toolbar=no,scrollbars=yes,resizable=yes,width=" + windowWidth + ",height=" + windowHeight)
  return winHandle
  }
function winClose(){    // close all open pop-up windows
  if(win1Open != null) win1Open.close()
  if(win2Open != null) win2Open.close()
  if(win3Open != null) win3Open.close()
  if(win4Open != null) win4Open.close()

  }
function openPopUpWindow(){}  // does nothing but required by JavaScript & shows in status bar

function MM_findObj(n, d) { //v4.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}
//-->

/*
Form field Limiter script- By Dynamic Drive
For full source code and more DHTML scripts, visit http://www.dynamicdrive.com
This credit MUST stay intact for use
*/

var ns6=document.getElementById&&!document.all

function restrictinput(maxlength,e,placeholder){
if (window.event&&event.srcElement.value.length>=maxlength)
return false
else if (e.target&&e.target==eval(placeholder)&&e.target.value.length>=maxlength){
var pressedkey=/[a-zA-Z0-9\.\,\/]/ //detect alphanumeric keys
if (pressedkey.test(String.fromCharCode(e.which)))
e.stopPropagation()
}
}

function countlimit(maxlength,e,placeholder){
var theform=eval(placeholder)
var lengthleft=maxlength-theform.value.length
var placeholderobj=document.all? document.all[placeholder] : document.getElementById(placeholder)
if (window.event||e.target&&e.target==eval(placeholder)){
if (lengthleft<0)
theform.value=theform.value.substring(0,maxlength)
placeholderobj.innerHTML=lengthleft
}
}


function displaylimit(thename, theid, thelimit){
var theform=theid!=""? document.getElementById(theid) : thename
var limit_text='<b><span id="'+theform.toString()+'">'+thelimit+'</span></b> characters remaining on your input limit'
if (document.all||ns6)
document.write(limit_text)
if (document.all){
eval(theform).onkeypress=function(){ return restrictinput(thelimit,event,theform)}
eval(theform).onkeyup=function(){ countlimit(thelimit,event,theform)}
}
else if (ns6){
document.body.addEventListener('keypress', function(event) { restrictinput(thelimit,event,theform) }, true); 
document.body.addEventListener('keyup', function(event) { countlimit(thelimit,event,theform) }, true); 
}
}


function formCheck(formobj){
	// Enter name of mandatory fields
	var fieldRequired = Array("contact", "email", "telephone", "address", "property", "message");
	// Enter field description to appear in the dialog box
	var fieldDescription = Array("Contact", "Email", "Telephone", "Address", "Property Address", "HomeTXT Message");
	// dialog message
	var alertMsg = "Ooops, Please complete the following fields to complete your order:\n";
	
	var l_Msg = alertMsg.length;
	
	for (var i = 0; i < fieldRequired.length; i++){
		var obj = formobj.elements[fieldRequired[i]];
		if (obj){
			switch(obj.type){
			case "select-one":
				if (obj.selectedIndex == -1 || obj.options[obj.selectedIndex].text == ""){
					alertMsg += " - " + fieldDescription[i] + "\n";
				}
				break;
			case "select-multiple":
				if (obj.selectedIndex == -1){
					alertMsg += " - " + fieldDescription[i] + "\n";
				}
				break;
			case "text":
			case "textarea":
				if (obj.value == "" || obj.value == null){
					alertMsg += " - " + fieldDescription[i] + "\n";
				}
				break;
			default:
			}
			if (obj.type == undefined){
				var blnchecked = false;
				for (var j = 0; j < obj.length; j++){
					if (obj[j].checked){
						blnchecked = true;
					}
				}
				if (!blnchecked){
					alertMsg += " - " + fieldDescription[i] + "\n";
				}
			}
		}
	}

	if (alertMsg.length == l_Msg){
		return true;
	}else{
		alert(alertMsg);
		return false;
	}
}
    function toggle_visibility(id) {
       var e = document.getElementById(id);
       var show = '';
       if(e.style.display == 'block') {
          e.style.display = 'none';
          show = '0';
       } else {
          e.style.display = 'block';
          show = '1';
       }
       var req  = createRequestObject();
      
	  
	   req.open("GET", 'inform.php?help=' + show);
       req.send(null);
    }
	
	function showIndex(page) {
		var pages = new Array('home','order','manage','build','tours','finance','downloads')
		for (var i=0; i<7; i++) {
			var w = document.getElementById('index_' + pages[i])
			if(w) w.style.display = 'none'	
		}
		document.getElementById('index_' + page).style.display = ''	
	}
	
function doDimmers() {
	/*var targ = document.getElementById('dims')
	targ.innerHTML = ''*/
	var dims = new Array('dim_music_0','dim_music_1','dim_music_2','dim_voice_0','dim_voice_1','dim_voice_2')
	for (var i=0; i<dims.length; i++) {
		var src = document.getElementById(dims[i].replace('dim_',''))
		if(!src.checked) {
			src.parentNode.className = ''
			src = document.getElementById(dims[i])
			src.style.display = 'none'
		} else {
			src.parentNode.className = 'active'
			src = document.getElementById(dims[i])
			src.style.display = ''
		}
		hidePreviewAlert()
	}
}

function findPosX(obj) {
	var curleft = 0;
	if (obj.offsetParent) {
		while (obj.offsetParent) {
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	} else if (obj.x)
		curleft += obj.x;
	if(browserName=="Microsoft Internet Explorer") return curleft+6
	return curleft;
}

function findPosY(obj) {
	var curtop = 0;
	if (obj.offsetParent) {
		while (obj.offsetParent) {
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	} else if (obj.y)
		curtop += obj.y;
	if(browserName=="Microsoft Internet Explorer") return curtop+1
	return curtop;
}

function findWidth(obj) {
	var curleft = 0;
	if (obj.offsetWidth) {
		curleft = obj.offsetWidth
	} else if (obj.width)
		curleft = obj.width;
	return curleft;
}

function findHeight(obj) {
	var curtop = 0;
	if (obj.offsetHeight) {
		curtop = obj.offsetHeight;
	} else if (obj.height)
		curtop = obj.height;
	return curtop;
}



function addMusicStart() {
	document.getElementById('musicselectprogress').style.display = ''
	document.getElementById('musicselect').style.display = 'none'
}

function addMusic(name) {
	var targ = document.getElementById('musicselect')
	if(name!=''){
		var el = document.createElement('OPTION')
		el.value = name
		el.innerHTML = name
		el.selected = true
		targ.appendChild(el)
	}
	targ.style.display = '';
	document.getElementById('musicselectprogress').style.display = 'none'
	previewAlert()
}

function setVoice(name) {
	var targ = document.getElementById('rtmp')
	targ.value = name.replace('.flv','')
	targ = document.getElementById('rtmptick')
	targ.style.display = ''
	tempX = findPosX(targ)-10
	tempY = findPosY(targ)+25
	previewAlert()
}
var timer
function previewAlert() {
	//document.getElementById('previewalert').style.display = ''
	var pa2 = document.getElementById('previewalert2')
	pa2.style.display = ''
	pa2.style.left = (tempX+10) + 'px'
	pa2.style.top = (tempY+10) + 'px'
	window.clearTimeout(timer)
	timer = window.setTimeout(hidePreviewAlert,30000)
	// var s = 'X=' + window.event.clientX +  ' Y=' + window.event.clientY ;
	// alert(s)
}

function hidePreviewAlert() {
	//document.getElementById('previewalert').style.display = 'none'
	document.getElementById('previewalert2').style.display = 'none'
}

function restartPreview(mem_num) {
	hidePreviewAlert()
	document.getElementById('player1').innerHTML = ''
	document.getElementById('player2').innerHTML = ''
	file1 = ''
	file2 = ''
	volume1= 0
	volume2= 0
	loop = 0
	if (document.getElementById('music_1').checked) {
		//Music from Library
		var val = document.getElementById('lib_num').value
		if(val>0) {
			file1 = '../audio/library/' + library[val]	
			volume1 = document.getElementById('volume_1').value
			loop1 = document.getElementById('loop_1').checked?1:0
		}
	} else if (document.getElementById('music_2').checked) {
		//Uploaded MP3
		var val = document.getElementById('musicselect').value
		if (val!='') {
			file1 = '../audio/music/' + mem_num + '/' + val
			volume1 = document.getElementById('volume_2').value
			loop1 = document.getElementById('loop_2').checked?1:0
		}
	}
	volume1 = parseFloat(volume1)
	
	if(file1!='') {
		flowplayer("player1", "../voice/flowplayer-3.1.5.swf",{
			plugins: {
				controls: {
					fullscreen: false, 
					volume: false, 
					mute: false,
					height: 20
				},
				audio: {
					url: 'flowplayer.audio-3.1.2.swf'
				}
			},
			clip: {
				url: file1
			},
			onLoad: function() {
				this.setVolume(volume1*10);
			},
			onFinish: function() {
				if(loop1) this.play()
				else this.stop()
			}
		});
	}
	if (document.getElementById('voice_1').checked && document.getElementById('rtmp').value!='') {
		//RTMP
		flowplayer("player2", "../voice/flowplayer-3.1.5.swf",{
			plugins: {
				controls: {
					fullscreen: false, 
					volume: false, 
					mute: false,
					height: 20 
				},
				rtmp: { 
					url: 'flowplayer.rtmp-3.1.3.swf', 
					netConnectionUrl: 'rtmp://bcg22rpp.rtmphost.com/irecord',
					durationFunc: 'getStreamLength' 
				}
			}, 
			clip: {
				provider:'rtmp',
				url:document.getElementById('rtmp').value
			}
		});
	
	} else if (document.getElementById('voice_2').checked &&  document.getElementById('ttsmp3').value!='') {
		//TTS	
		flowplayer("player2", "../voice/flowplayer-3.1.5.swf",{
			plugins: {
				controls: {
					fullscreen: false, 
					volume: false, 
					mute: false,
					height: 20 
				},
				audio: {
					url: 'flowplayer.audio-3.1.2.swf'
				}
			},
			clip: {
				url: '../audio/tts/' + document.getElementById('ttsmp3').value
			},
			onLoad: function() {
				this.setVolume(100);
			}
		});
	}
	
	var targ = document.getElementById('previewframe')
	targ.src = targ.src
}

var xmlHTTP
function saveTTS() {
		document.getElementById('ttsbuttons').style.display = 'none'
		document.getElementById('ttsloading').style.display = ''
		xmlHTTP = createRequestObject()
		xmlHTTP.onreadystatechange = saveTTSDone
		var text = document.getElementById('ttstext').value
		var voice = avatar[document.getElementById('ttsvoice').value]
		if(voice[2]!=4) text = text.replace(new RegExp('\\n','g'),'<BREAK time="500ms" />')
		var add = 'ttssave.php?voice=' + voice[0] + ',' + voice[1] + ',' + voice[2] + '&text=' + urlencode(text)
		xmlHTTP.open("GET", add)
		xmlHTTP.send(null)
}
function previewText() {
	document.getElementById('ttsbuttons').style.display = 'none'
	document.getElementById('ttsloading').style.display = ''
	var text = document.getElementById('ttstext').value
	voice = avatar[document.getElementById('ttsvoice').value]
	if(voice[2]!=4) text = text.replace(new RegExp('\\n','g'),'<BREAK time="500ms" />')
	sayText(text,voice[0],voice[1],voice[2])
}
function vh_sceneLoaded() {
	document.getElementById('ttsloading').style.display = 'none'
	document.getElementById('ttsbuttons').style.display = ''
}
function vh_talkStarted() {
	document.getElementById('ttsstop').disabled = false
	vh_sceneLoaded()
}
function vh_talkEnded() {
	document.getElementById('ttsstop').disabled = true
}

function urlencode(str) {
	return escape(str).replace(/\+/g,'%2B').replace(/%20/g, '+').replace(/\*/g, '%2A').replace(/\//g, '%2F').replace(/@/g, '%40');
}
var avatar = new Array()
//Arrray(VoiceID,LangID,TTS Family)
avatar['alan'] = Array(10,1,4)
avatar['grace'] = Array(10,1,2)
avatar['susan'] = Array(1,1,2)
avatar['paul'] = Array(2,1,3)
avatar['serena'] = Array(7,1,4)
avatar['daniel'] = Array(5,1,4)
avatar['samantha'] = Array(11,1,4)
avatar['julie'] = Array(3,1,3)
function saveTTSDone() {
	if(xmlHTTP.readyState == 4){
        var file = xmlHTTP.responseText
		if (file=='') {
			alert("There was an error and your audio could not be saved. Please try again")
		} else {
			document.getElementById('ttsmp3').value = file
			document.getElementById('ttstick').style.display = ''
			previewAlert()
		}
		document.getElementById('ttsbuttons').style.display = ''
		document.getElementById('ttsloading').style.display = 'none'
	}
}
function urlencode(str) {
	return escape(str).replace(/\+/g,'%2B').replace(/%20/g, '+').replace(/\*/g, '%2A').replace(/\//g, '%2F').replace(/@/g, '%40');
}



function getChecked(chk) {
	for(var i=0; i<chk.length; i++) {
		if(chk[i].checked) return chk[i].value
	}
	return false
}
function photgraphyDone(caller,hom_num) {
	caller = caller.parentNode
	caller.innerHTML = '<img src="icons/progress.gif" />'
	xmlHTTP = createRequestObject()
	xmlHTTP.onreadystatechange = function() {
		if(xmlHTTP.readyState == 4){
			caller.innerHTML = '<img src="icons/tick.gif" /> Photography Complete'
			var u = $('uploader_' + hom_num)
			if(u) u.parentNode.removeChild(u)
		}
	}
	xmlHTTP.open("GET", 'uploaddone.php?h=' + hom_num)
	xmlHTTP.send(null)
}
function graphicdesignDone(caller,hom_num) {
	caller = caller.parentNode
	caller.innerHTML = '<img src="icons/progress.gif" />'
	xmlHTTP = createRequestObject()
	xmlHTTP.onreadystatechange = function() {
		if(xmlHTTP.readyState == 4){
			caller.innerHTML = '<img src="icons/tick.gif" /> Photography Complete'
			var u = $('uploader_' + hom_num)
			if(u) u.parentNode.removeChild(u)
		}
	}
	xmlHTTP.open("GET", 'uploaddone.php?final=1&h=' + hom_num)
	xmlHTTP.send(null)
}

function setlettertab(caller) {
	var tabs = document.getElementById('minitabs').firstChild
	do {
		tabs.className = ''
		tabs = tabs.nextSibling
	} while (tabs)
	tabs = document.getElementById('agenttabs').firstChild
	do {
		tabs.style.display = 'none'
		tabs = tabs.nextSibling
	} while (tabs)
	var tab = document.getElementById('tab_' + caller.innerHTML)
	tab.style.display = 'block'
	caller.className = 'active'
}

function keepAlive(sid) {
	if ($('debug')) $('debug').innerHTML +=	"Starting<br/>"
	xmlHttp=createRequestObject()
	xmlHttp.onreadystatechange = keepAliveReturn
	xmlHttp.open("GET",'/cc/keepalive.php?sid=' + sid,true)
	xmlHttp.send(null)
	if ($('debug')) $('debug').innerHTML +=	"Sent<br/>"
}

function keepAliveReturn() {
	if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {
		if ($('debug')) $('debug').innerHTML +=	xmlHttp.responseText + "<br/>"
	}
}
