var win = null;

//*********************************************************
//*										     newWindow	  *
//* 		   Opens a new window center of the screen	  *
//*********************************************************
function newWindow(winLocation,winWidth,winHeight)
{
	var leftPosition,topPosition;
	leftPosition = (screen.width) ? (screen.width-winWidth)/2 : 0;
	topPosition = (screen.height) ? (screen.height-winHeight)/2 : 0;
	winSettings = 'height='+winHeight+',width='+winWidth+',top='+topPosition+',left='+leftPosition+',scrollbars=no';
	win = window.open(winLocation,'',winSettings);
}


//*********************************************************
//*										     hideDive	  *
//* 		   			Toggles Maker educator visibility *
//*********************************************************

function Tog(x) {
var expandable = document.getElementById('expandable');
expandable.style.display = x;
}

function toggleDiv(divid){
  if(document.getElementById(divid).style.display == 'none'){
    document.getElementById(divid).style.display = 'block';
  }else{
    document.getElementById(divid).style.display = 'none';
  }
}




//*********************************************************
//*										     hideDive	  *
//* 		   			Toggles a section's visibility 	  *
//*********************************************************
function hideDiv(target_div_id, control_div_id, hidetext, showtext)
{
	var objTargetDiv = document.getElementById(target_div_id);
	var objControlDiv = document.getElementById(control_div_id);
	if (objTargetDiv.style.display == 'none')
	{
		objTargetDiv.style.display = 'block';
		objControlDiv.innerHTML = hidetext;
	}
	else
	{
		objTargetDiv.style.display = 'none';
		objControlDiv.innerHTML = showtext;
	}
}


//*********************************************************
//*										makeBold		  *
//* Wrapper for addTags function -- creates bold text     *
//*********************************************************
function makeBold(element, button)
{
	addTags(element, '*', '*', button);
}


//*********************************************************
//*										makeItalic        *
//* Wrapper for addTags function -- creates italic text	  *
//*********************************************************
function makeItalic(element, button)
{
	addTags(element, '_', '_', button);
}


//*********************************************************
//*											addLink		  *
//* 								Adds a URL link		  *
//*********************************************************
function addLink(element, button)
{
	var objElement = document.getElementById(element);
	objElement.focus();
	
	// IE
	if (document.selection && document.selection.createRange)
	{
		//IE7 or above -- block window.prompt
		if (window.XMLHttpRequest) 
		{
			alert("Enter the link in the following format: \n \"LINKTEXT\":LINKURL \n Where LINKTEXT is the text to be clicked and LINKURL is the site to visit");
		}
		else
		{
			//Text selected, wrap it in delimiters			
			if (document.selection.createRange().text.length != 0)
			{
				var strURL = window.prompt("Please enter the URL to link to","");
				document.selection.createRange().text = "\"" + document.selection.createRange().text + "\":" + strURL;
			}
			//No text selected
			else
			{
				var objButton = document.getElementById(button);
				var strText = window.prompt("Please enter the text that will be linked","");
				var strURL = window.prompt("Please enter the URL to link to","");
				objElement.value = objElement.value + "\"" + strText + "\":" + strURL;
				objElement.focus();
			}
		}
	}


	// MOZILLA/GECKO
	else if (objElement.selectionStart || objElement.selectionStart == "0") 
	{
		//Text selected, wrap it in delimiters
		if (objElement.selectionStart - objElement.selectionEnd != 0)
		{
			var strBefore = objElement.value.substring(0, objElement.selectionStart);
			var strSelected = objElement.value.substring(objElement.selectionStart, objElement.selectionEnd);
			var strAfter = objElement.value.substring(objElement.selectionEnd, objElement.value.length);

			strSelected = "\"" + strSelected + "\":";
		
			var strURL = window.prompt("Please enter the URL to link to");
			objElement.value = strBefore + strSelected + strURL + strAfter; 
		}
		//No text selected
		else
		{
			var objButton = document.getElementById(button);
			var strText = window.prompt("Please enter the text that will be linked","");
			var strURL = window.prompt("Please enter the URL to link to","");
			objElement.value = objElement.value + "\"" + strText + "\":" + strURL;
			objElement.focus();
		}
	}	

}

//*********************************************************
//*										addTags			  *
//* Add formatting tags around a selected piece of text	  *
//*********************************************************
function addTags(element, startdelimiter, enddelimiter, button)
{
	var objElement = document.getElementById(element);
	objElement.focus();	

	// IE
	if (document.selection && document.selection.createRange)
	{
		//Text selected, wrap it in delimiters			
		if (document.selection.createRange().text.length != 0)
		{
			document.selection.createRange().text = startdelimiter + document.selection.createRange().text + enddelimiter;
		}
		//No text selected, so "open" and "close" tags (and change button state)
		else
		{
			var objButton = document.getElementById(button);
			objButton.style.color == "green" ? objElement.value = objElement.value + enddelimiter : objElement.value = objElement.value + startdelimiter
			objButton.style.color == "green" ? objButton.style.color = "black" : objButton.style.color = "green"
			objElement.focus();
		}
	}


	// MOZILLA/GECKO
	else if (objElement.selectionStart || objElement.selectionStart == "0") 
	{
		//Text selected, wrap it in delimiters
		if (objElement.selectionStart - objElement.selectionEnd != 0)
		{
			var strBefore = objElement.value.substring(0, objElement.selectionStart);
			var strSelected = objElement.value.substring(objElement.selectionStart, objElement.selectionEnd);
			var strAfter = objElement.value.substring(objElement.selectionEnd, objElement.value.length);

			strSelected = startdelimiter + strSelected + enddelimiter;

			objElement.value = strBefore + strSelected + strAfter;
		}
		//No text selected, so "open" and "close" tags (and change button state)
		else
		{
			var objButton = document.getElementById(button);
			objButton.style.color == "green" ? objElement.value = objElement.value + enddelimiter : objElement.value = objElement.value + startdelimiter
			objButton.style.color == "green" ? objButton.style.color = "black" : objButton.style.color = "green"
			objElement.focus();
		}
	}
}
//*********************************************************
//*										         	      *
//* 		   Opens external links in a new window       *
//*********************************************************
//Open offsite links in new window script- http://www.dynamicdrive.com/
//Created: August 28th, 2007'

var ddwindowlinks={
//1)Enter domains to be EXCLUDED from opening in new window:
excludedomains: ["craftscouncil.org.uk", "craftclub.org.uk", "labcraft.org.uk", "blockparty.org.uk", "lostinlace.org.uk", "craftmatters.org.uk", "craft-action.org.uk", "craftrally.org.uk", "originuk.org", "4040.org.uk", "craftsmagazine.org.uk", "onviewonline.org.uk", "collect2012.org.uk"],

//2) Target for links that should open in a new window (ie: "_blank", "secwin" etc):
linktarget: "_blank",

//3) Specify operating mode ("auto" or "manual"):
mode: "auto",

//4) If mode is "manual", customize checkbox HTML to show to users (Preserve id attribute):
toggleHTML: '<form><input type="checkbox" id="targetcheckbox" checked="checked" /><label for="targetcheckbox">Open off-site links in new window?</label></form>',

//5) If mode is "manual", enable user persistence so the state of the checkbox is remembered?
persist: true,

assigntarget:function(){
	var rexcludedomains=new RegExp(this.excludedomains.join("|"), "i")
	var all_links=document.getElementsByTagName("a")
	if (this.mode=="auto" || (this.mode=="manual" && this.togglebox.checked)){
		for (var i=0; i<=(all_links.length-1); i++){
			if (all_links[i].hostname.search(rexcludedomains)==-1 && all_links[i].href.indexOf("http:")!=-1)
				all_links[i].target=ddwindowlinks.linktarget
		}
	}
	else{
		for (var i=0; i<=(all_links.length-1); i++)
			all_links[i].target=""
	}
	if (this.mode=="manual" && this.persist)
		this.setCookie("dlinktarget", (this.togglebox.checked)? "yes" : "no", 30) //remember user setting for 30 days (set to -1 then reload page to erase cookie)
},

init:function(){
	if (document.getElementById && this.mode=="manual"){
		document.write(this.toggleHTML)
		this.togglebox=document.getElementById("targetcheckbox")
		this.togglebox.onclick=function(){ddwindowlinks.assigntarget()}
		if (this.persist && this.getCookie("dlinktarget")!="")
			this.togglebox.checked=(this.getCookie("dlinktarget")=="yes")? true : false
	}
	if (window.addEventListener)
		window.addEventListener("load", function(){ddwindowlinks.assigntarget()}, false)
	else if (window.attachEvent)
		window.attachEvent("onload", function(){ddwindowlinks.assigntarget()})
},

getCookie:function(Name){
	var re=new RegExp(Name+"=[^;]+", "i"); //construct RE to search for target name/value pair
	if (document.cookie.match(re)) //if cookie found
		return document.cookie.match(re)[0].split("=")[1] //return its value
	return ""
},

setCookie:function(name, value, days){
	var expireDate = new Date()
	//set "expstring" to either an explicit date (past or future)
		var expstring=expireDate.setDate(expireDate.getDate()+parseInt(days))
		document.cookie = name+"="+value+"; expires="+expireDate.toGMTString()+"; path=/"
}

}

ddwindowlinks.init()
