// JavaScript Document

function byid(id){ return document.getElementById(id); }

function validate(){
	try{
		byid("errors").innerHTML = "&nbsp;";
		var regTMP = byid("regex").value;
		var OutField = byid("OutField");
		var input = myCpWindow.getCode();

		if( Output.match("t") ){
			regTMP = regTMP.replace(/(<)/gi,"&lt;").replace(/(>)/gi,"&gt;")
			input = input.replace(/(<)/gi,"&lt;").replace(/(>)/gi,"&gt;")
		}
		
		var RegEx = new RegExp(regTMP, RegexOptions);
		if( Output.match("c") && regTMP.length>0 )
		{
			OutField.innerHTML = "<pre>" + input.replace(new RegExp(regTMP + "()()()()()()()()()", RegexOptions),"<span class=gre>$1</span><span class=red>$2</span><span class=blu>$3</span><span class=cya>$4</span><span class=yel>$5</span><span class=pur>$6</span><span class=gre2>$7</span><span class=red2>$8</span><span class=blu2>$9</span>") + "</pre>"
		}
		else if( Output.match("a") && regTMP.length>0 )
		{
			var show = ''
			var res_arr = input.match(new RegExp(regTMP, RegexOptions))
			for(i=0 ; i<res_arr.length ; i++)
				show += res_arr[i].replace(new RegExp(regTMP + "()()()()()()()()()", RegexOptions),"<span class=gre>$1</span><span class=red>$2</span><span class=blu>$3</span><span class=cya>$4</span><span class=yel>$5</span><span class=pur>$6</span><span class=gre2>$7</span><span class=red2>$8</span><span class=blu2>$9</span>") + "</pre>" + "<br>"
			OutField.innerHTML = show;
		}
	}catch(e){
		byid("errors").innerHTML = "Regex Errors: " + e.message;
	}
}

function GetInnerSize () {
	var x,y;
	if (self.innerHeight){ // all except Explorer
		x = self.innerWidth;
		y = self.innerHeight;
	}else if (document.documentElement && document.documentElement.clientHeight){
		x = document.documentElement.clientWidth;
		y = document.documentElement.clientHeight;
	}
	else if (document.body){ // other Explorers
		x = document.body.clientWidth;
		y = document.body.clientHeight;
	}
	return [x,y];
}

var extended = false;
function SetSize(bool){
  	var size = GetInnerSize();

	if( !navigator.appName.match("Micro"))
	{
		myCpWindow.style.width= (size[0]-40) + "px"
		//myCpWindow.style.height = (size[1]-200)		

		if(!extended && bool){
			myCpWindow.style.height = "600px";
			extended = true;
		}else{
			myCpWindow.style.height = "200px";
			extended = false;
		}
	}
}

function change(){
	var lang = byid("Lang").value;
	myCpWindow.edit( myCpWindow.getCode(), lang );
}

function LoadURL(){
	var URL = byid("URL").value
	var lang = byid("Lang").value;
	var xmlhttp = false
	
	try { 	xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
	try {	xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	} catch (E) {	xmlhttp = false; } }

	if (!xmlhttp && typeof(XMLHttpRequest) != 'undefined') {
		try { 			xmlhttp = new XMLHttpRequest();
		} catch (e) {	xmlhttp = false;	}
	}
	if (!xmlhttp && window.createRequest) {
		try {			xmlhttp = window.createRequest();
		} catch (e) {	xmlhttp = false;	}
	}
	
	if ( xmlhttp )
	{
		xmlhttp.onreadystatechange = function()
		{
			if (xmlhttp.readyState==4){
				if (xmlhttp.status==200){
					myCpWindow.edit( xmlhttp.responseText, lang );
				}else{
					alert("Problem retrieving XML data")
				}
			}
		}
		try{
			xmlhttp.open("GET", "get.asp?URL=" + URL, true);
			xmlhttp.send(null);
		}catch(e){
			alert("xmlhttp error: \n" + e.message);
		}
	}else{
		alert("Your browser does not support XMLHTTP.")
	}
}

var RegexOptions = "gi"
function RegExOptions(char){
	RegexOptions = (RegexOptions.match(char)) ? RegexOptions.replace(char,"") : (RegexOptions + char);
	byid("char_" + char).style.backgroundColor = (RegexOptions.match(char)) ? "rgb(0,255,0)" : "darkgreen" ;
}

var Output = "ct"
function OutputOptions(char){
	Output = (Output.match(char)) ? Output.replace(char,"") : (Output + char);
	byid("out_" + char).style.backgroundColor = (Output.match(char)) ? "rgb(0,255,0)" : "darkgreen" ;
}