/* 	jQuery alternating row colors (zebra_stripe_tables) 
	adds a 'odd' or 'even' classnames on all tables which have a classname of 'p80_zebra_table'
============================================================= */

$(document).ready(function(){										// body.onload()
	$("table.p80jq_zebra_table tbody tr").each(function(index) {	// to all tr-tags
		$(this).addClass(index % 2 == 0 ? "odd" : "even");			// add an 'odd' or 'even' classname
	});
});

/* 	jQuery rollovers on elements with a src-attribute
	on rollover 'demo.gif' becomes 'demo_hover.gif'
============================================================= */

$(document).ready(function(){													// body.onload()
	$(".p80jq_src_hover").hover(function() { 									// classname to trigger
		$(this).attr("src", $(this).attr("src").split(".").join("_hover."));	// mouse-over: add the filename suffix
	}, function() {
		$(this).attr("src", $(this).attr("src").split("_hover.").join("."));	// mouse-out: restore, remove filename suffix
	});
});

/* 	jQuery FAQ like expanding list
============================================================= */

$(document).ready(function() {
	// get all dl-tags with css class='p80jq_expandinglist'
	var faqList = $("dl.p80jq_expandinglist");
	
	// directly hide all the dd's on body.onload() (is also set using css)
	$("dd", faqList).hide();
	
	// set a click event on the dt's
	$("dt", faqList).click(onFaqListItemClick);
	
	// var openFaqItem = getQuerystring()["openitem"];
	var openFaqItem =  String (document.location).split ('#')[1] || '';
	if (openFaqItem != undefined)
	{
		// var faqItem = document.getElementById("openitem-" + openFaqItem);
		var faqItem = document.getElementById(openFaqItem);
		openFaqListItem(faqItem);
	}
});

function onFaqListItemClick(event)
{
	// close all
	var faqList = $("dl.p80jq_expandinglist");
	$("dt", faqList).removeClass("active");
	$("dd", faqList).hide();
	
	// open clicked
	openFaqListItem(this);
}

function openFaqListItem(elem)
{
	if (elem == undefined)
		return;

	var isOpen = (elem.className.match(/active/) == "active");
	
	if (!isOpen) {
		$(elem).addClass("active");		// add an 'active' css class
		$(elem).next("dd").toggle();	// and toggle inline css display none|block on the dd's
	}
}

/*	Restore defaultValue on form elements onblur
============================================================= */

$(document).ready(function() {
	$("input:text.p80jq_element_restore_value, textarea.p80jq_element_restore_value").each(function() {
		$(this).attr('p80_org_formvalue', $(this).val());
		$(this).addClass('p80_form_label');
	})
	.focus(function () {
		if($(this).val() != '' && $(this).val() == $(this).attr('p80_org_formvalue')) {
			$(this).val('');
			$(this).removeClass('p80_form_label');
		}					
	 })
	.blur(function() {
		if($(this).val() == '') {
			$(this).val($(this).attr('p80_org_formvalue'));
			$(this).addClass('p80_form_label');
		}
	});
}); 

/*	Thumbnail list
============================================================= */

function p80jq_toggle_thumbs(){
	$("img.index_thumb").each(function() {					// img-tags with 'index_thumb' classnames
		$(this).toggleClass("index_thumb_show"); 			// toggle the classname
	});
}

/*	Unobtrusive Flash embedding using jQuery and SWFObject
============================================================= */
/*
$(document).ready(function(){
	var flashvars = {
		name1: "hello",
		name2: "world",
		name3: "foobar"
	};
	
	var params = {
		wmode: "transparent",
		menu: "false"		
	};
	
	var attributes = {
		id: "myDynamicContent",
		name: "myDynamicContent"
	};
	swfobject.embedSWF("/path/to/movie.swf", "theDivID", "300", "120", "8.0.0","/swf/expressInstall.swf", flashvars, params, attributes);
});
*/

/*	UReturn a key/value array of the URL query-string
============================================================= */

function p80_get_query_string() {
	var querystring = new Array; 
	// parse current url into an array with the keys/values
	var q = String (document.location).split ('?')[1];
	// return if there is no url query string
	if (!q) return false;
	q = q.split ('&');	
	for (var i = 0 ; i < q.length; i++)	{
		// for each key/value, split them at the '='
		// and add them to the qerystring array
		var o = q[i].split('=');		
		// create the array and url decode the string
		querystring[o[0]] = unescape(o[1]);
	}	
	// return the querystring array
	return querystring;
}


$(document).ready(function() {
    $(".campaignLink").each(function() {
        $(this).bind("click", function() { getRedirectUrl(this); return false; });
    });
    $(".hideOrder").each(function() {
        $(this).bind("click", function() { hideOrder(this); return false; });
    });
    $(".orderProduct").each(function() {
        $(this).bind("click", function() { orderProduct(this); return false; });
    });
});

function getRedirectUrl(element) {
    var campaignId = $.metadata.get(element).campaignId;
    var status = $.metadata.get(element).status;

    switch (status) {
        case 0:
            Poort80.Web.Zero.Services.Ajax.GetRedirectUrl(campaignId, function(result) { onGetRedirectUrlResponse(result); }, onAjaxFailure);
            break;
        case 1:
            alert(labels["max_user_campaign_transactions"]);
            break;
    }
    return false;
};

function onGetRedirectUrlResponse(redirectUrl, element) {
	window.open(redirectUrl);
};

function hideOrder(element) {
    if (confirm(labels["confirm_hide_order"])) {
        var orderId = $.metadata.get(element).orderId;
        Poort80.Web.Zero.Services.Ajax.HideOrder(orderId, function(result) { onHideOrderResponse(result, element); }, onAjaxFailure);
    }
    return false;
};

function onHideOrderResponse(redirectUrl, element) {
    if ($(element).parents("tr:first").siblings().length == 1) {
        $(element).parents("table:first").remove()
    } else {
        $(element).parents("tr:first").remove();
    }
};

function orderProduct(element) {
    var status = $.metadata.get(element).status;
    switch (status) {
        case 1: //can order
            if (confirm(labels["confirm_order"])) {
                var productID = $.metadata.get(element).productID;
                Poort80.Web.Zero.Services.Ajax.OrderProduct(productID, function(result) { onAddOrderResponse(result); }, onAjaxFailure);
            };
            break;
        case 2: //not enough points
            alert(labels["not_enough_points"]);
            break;
        case 3: //incomplete profile       
            alert(labels["incomplete_profile"]);
            break;
    }
    return false;
};

function onAddOrderResponse(result) {
    location.href = "/account/orders.aspx";
};

function onAjaxFailure() {
    location.href = "/default.aspx";
};
