
//
// Screenshot/Video Tabs
//
var tabView = new YAHOO.widget.TabView('recipe-summary-home');
/*
var tab1 = tabView.getTab(0)
var tab2 = tabView.getTab(1)
var tab3 = tabView.getTab(2)
var tab4 = tabView.getTab(3)
var tab5 = tabView.getTab(4)
var tab6 = tabView.getTab(5)

//
// Optional variables (first value is default) : mode=landscape/portrait, type=image/video, theme=666666/hex color, items=1/Max10
//
tabView.addListener('activeTabChange',function (event) {

	var index = tabView.getTabIndex(event.newValue)
	switch(index) {

		case 0:
		//	var so = new SWFObject("swf/media_display.swf", "media_display_swf", "398", "383", "9", "#000000");
		//	so.addVariable("items",10);
		//	so.addParam("wmode","opaque");
		//	so.write("tab1");
			//
			// Stop the damn video
		//	tab2.set('content','');
		break;
	
		case 1:
		//	var so = new SWFObject("swf/media_display.swf", "media_display_swf", "398", "383", "9", "#000000");
		//	so.addParam("wmode","opaque");
		//	so.addVariable("type", "video");
		//	so.addVariable("theme", "CC0098");
		//	so.write("tab2");
		break;
	}

})


tabView.set('activeIndex',0)

*/



var Popup = function(content,x,y)
{
	popupObj = document.createElement("div");
	popupObj.className="popup"
	popupObj.innerHTML = '<div class="popup_header"><a href="javascript:void();" onclick="parentNode.parentNode.owner.close()">Close</a></div>' + content
	popupObj.owner = this
	popupObj.style.visibility = "hidden"
	
	var bodyTags = document.getElementsByTagName("body");
	var bodyObj = bodyTags[0]
	bodyObj.appendChild(popupObj)

	if(x == undefined && y == undefined){
		var x = ( window.innerWidth / 2 ) - ( popupObj.offsetWidth / 2 )
		var y = 100
	}
	popupObj.style.left = x + "px"
	popupObj.style.top = y + "px"
	popupObj.style.visibility = "visible"
}
Popup.prototype.move = function(x,y)
{
}
Popup.prototype.close = function(x,y)
{
	popupObj.parentNode.removeChild(popupObj)
}



var Alert = function(msg,x,y)
{

	alertObj = document.createElement("div");
	alertObj.className="alert"
	alertObj.innerHTML =  '<div class="header"></div>'
	alertObj.innerHTML += '<div class="body">' + msg + '</div>'
	alertObj.innerHTML += '<div class="footer"><a onclick="parentNode.parentNode.owner.close()" class="button">OK</a></div>';
	alertObj.owner = this
	alertObj.style.visibility = "hidden"

	var bodyTags = document.getElementsByTagName("body");
	var bodyObj = bodyTags[0]
	bodyObj.appendChild(alertObj)


	if(x == undefined && y == undefined){
		var x = ( window.innerWidth / 2 ) - ( alertObj.offsetWidth / 2 )
		var y = 100
	}
	
	alertObj.style.left = x + "px"
	alertObj.style.top = y + "px"
	alertObj.style.visibility = "visible"
}
Alert.prototype.close = function(x,y)
{
	alertObj.parentNode.removeChild(alertObj)
}








//
// save a recipe rating
// aguments:
// 1. recipe_id (any recipe id)
// 2. rating ( 0 - 100 )
// 3. target (div to receive HTML)
//
function save_recipe_rating(recipe_id, rating, target)
{
	var url = '/index.php?ai=save_recipe_rating&recipe_id=' + recipe_id + '&rating=' + rating + '&template=recipe_rating_control.html';
	var request = this.createRequest()
	request.open('GET', url, true);
	request.send(null)
	request.onreadystatechange = function(){
		//
		// response from server (readyState: 4)
		// check for status code 200 OK
		//
		if (request.readyState == 4 && request.status == 200) {			
			var result = request.responseText
			target.innerHTML = result
		}
	};
}


function save_subscription(publisher) 
{
	var url = '/index.php?ai=save_subscription&publisher=' + publisher;
	var request = this.createRequest()
	request.open('GET', url, true);
	request.send(null)
	request.onreadystatechange = function(){
		//
		// response from server (readyState: 4)
		// check for status code 200 OK
		//
		if (request.readyState == 4 && request.status == 200) {		
			new Alert(request.responseText);
		}
	};
}


function createRequest()
{
	var request = false;
	if(navigator.appName.indexOf("Explorer") > -1){
		request = new ActiveXObject("Msxml2.XMLHTTP");
		if(!request){
			request = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}else{
		request = new XMLHttpRequest();	
	}
	if (!request){
		alert("Error initializing XMLHttpRequest!");
	}
	return request;
}


function deObfuscate(crypt)
{
	return crypt.replace(/z/g,"")
}


function updateIngredients(e)
{
	var ev = e|window.event

	var container = document.getElementById("ingredient_fields");
	var items = container.getElementsByTagName("li");
	//
	// delete key pressed
	if(ev.keyCode == 8) {
		if(ev.target.value == ""){
			container.removeChild(ev.target.parentNode)
			// move focus to previous field or the first when there is only 1 field
			if(items.length > 1){
				items[items.length-2].firstChild.focus()
			}else{
				items[0].firstChild.focus()
			}
		}	
	}
	//
	// check if the fields are full
	var full = true;
	for(var i=0;i<items.length;i++){
		if(items[i].firstChild.value == ""){
			full = false
			break;
		}
	}
	
	if(full) {
		//
		// fields are full
		// add new empty ingredient field
		//
		var newItem = document.createElement("li");
		
		var newInput = document.createElement("input");
		newInput.name = "ingredients[]";
		newInput.value= "";
		newInput.type = "text";
		newInput.className = "ingredient_field"
		newInput.onkeyup = updateIngredients
		
		newItem.appendChild(newInput)		
		container.appendChild(newItem)
	}
}


















function loadElement(url, elemID) {

	var elem = document.getElementById(elemID)

	var handleSuccess = function(o){
		if(o.responseText !== undefined){
			o.argument.elem.innerHTML = o.responseText;
		}
	}
	
	var handleFailure = function(o){
		if(o.responseText !== undefined){
			o.argument.elem.innerHTML = "Unable to load";
		}
	}



	var callback =
	{
	  success:handleSuccess,
	  failure: handleFailure,
	  argument: { elem:elem}
	};

	var request = YAHOO.util.Connect.asyncRequest('GET', url, callback);

}