var req;
var content_id;
var view_id;
var view_name;

function getElementsByClass(searchClass, node, tag) {
	var classElements = new Array();
	
	if (node == null) {
		node = document;
	}
	
	if (tag == null) {
		tag = '*';
	}
	
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp("(^|\\s)" + searchClass + "(\\s|$)");
	
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	
	return classElements;
}


function get_content(url) {
	req = false;

	/*@cc_on @*/
	/*@if (@_jscript_version >= 5)
	try {
		req = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
		try {
			req = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (E) {
			req = false;
		}
	}
	
	@end @*/
	
	if (!req && typeof XMLHttpRequest != 'undefined') {
		try {
			req = new XMLHttpRequest();
		} catch (e) {
			req = false;
		}
	}
	
	if(!req && window.createRequest) {
		try {
			req = window.createRequest();
		} catch (e) {
			req = false;
		}
	}
	
	if(!req) {
		return false;
	}
	
	try {
		if(req.overrideMimeType) {
			req.overrideMimeType('text/xml');
		}
	} catch (e) { }
	
	if(req) {
		req.onreadystatechange = processReqChange;
		req.open("GET", url, true);
		req.send("");
	} else {
		return false;
	}
	
	return true;
}

function processReqChange() {
	if (req.readyState == 4) {
		if (req.status == 200) {
			switch(view_id) {
				case 0: // news
					show_news();
					break;
				case 1: // news extend
					show_news_extend();
					break;
				case 2: //shows
					show_shows();
					break;
				case 3: // shows extend
					show_shows_extend();
					break;
				case 4: // media
					show_media();
					break;
				case 5: // media extend
					show_media_extend();
					break;
				case 6: // shop
					show_shop();
					break;
				case 7: // press
					show_press();
					break;
				case 8: // bookus
					show_bookus();
					break;
				case 9:
					show_contact();
					break;
			};		
		} else {
			alert("There was a problem retrieving the XML data:\n" + req.statusText);
		}
	}
}

function init_view(vid) {
	view_id = vid;
	view_name = "";
	
	rotate_label("news", 0);
	rotate_label("shows", 0);
	rotate_label("media", 0);
	rotate_label("shop", 0);
	rotate_label("press", 0);
	rotate_label("bookus", 0);
	
		switch(view_id) {
		case 0: // news
			rotate_label("news", 7);
			view_name = "news";
			break;
		case 1: // news extend
			rotate_label("news", 7);
			view_name = "news";
			break;
		case 2: //shows
			rotate_label("shows", 7);
			view_name = "shows";
			break;
		case 3: // shows extend
			rotate_label("shows", 7);
			view_name = "shows";
			break;
		case 4: // media
			rotate_label("media", 7);
			view_name = "media";
			break;
		case 5: // media extend
			rotate_label("media", 7);
			view_name = "media";
			break;
		case 6: // shop
			rotate_label("shop", 7);
			view_name = "shop";
			break;
		case 7: // press
			rotate_label("press", 7);
			view_name = "press";
			break;
		case 8: // bookus
			rotate_label("bookus", 7);
			view_name = "bookus";
			break;
		default:
			break;
	};
}

function set_view(vid, cid) {

	content_id = cid;
	view_id = vid;
	view_name = "";

	rotate_label("news", 0);
	rotate_label("shows", 0);
	rotate_label("media", 0);
	rotate_label("shop", 0);
	rotate_label("press", 0);
	rotate_label("bookus", 0);

	switch(view_id) {
		case 0: // news
			get_content("/news/");
			rotate_label("news", 7);
			view_name = "news";
			break;
		case 1: // news extend
			get_content("/news/" + content_id + "/");
			rotate_label("news", 7);
			view_name = "news";
			break;
		case 2: //shows
			get_content("/shows/");
			rotate_label("shows", 7);
			view_name = "shows";
			break;
		case 3: // shows extend		
			get_content("/shows/" + content_id + "/");
			rotate_label("shows", 7);
			view_name = "shows";
			break;
		case 4: // media
			get_content("/media/");
			rotate_label("media", 7);
			view_name = "media";
			break;
		case 5: // media extend
				rotate_label("media", 7);
				view_name = "media";
				
				var origpics = getElementsByClass("photos", document.getElementById("content"), "div");			
				
				if(origpics.length > content_id) {
					if(origpics[content_id].style.display != "none") {
						jQuery(origpics[content_id]).slideToggle(300);
						return false;
					}
				}

				get_content("/media/" + content_id + "/");
			break;
		case 6: // shop
			get_content("/shop/");
			rotate_label("shop", 7);
			view_name = "shop";
			break;
		case 7: // press
			get_content("/press/");
			rotate_label("press", 7);
			view_name = "press";
			break;
		case 8: // bookus
			get_content("/contact/");
			rotate_label("bookus", 7);
			view_name = "bookus";
			break;
		case 9: // contact
			get_content("/contact/");
			break;
	};		

	return false;
}


function show_news() {
	try {	
		document.getElementById("content").innerHTML = req.responseXML.getElementById("content").innerHTML;
		set_random_stripes_news();
	} catch (e) {
		alert(e);
	}
	
	return false;
}

function show_news_extend() {
	document.getElementById("content").innerHTML = req.responseXML.getElementById("content").innerHTML;
	set_random_stripes_news();
	
	return false;
}

function show_shows() {
	document.getElementById("content").innerHTML = req.responseXML.getElementById("content").innerHTML;
	set_random_stripes_shows();
	
	return false;
}

function show_shows_extend() {
	var resptexts = getElementsByClass("extend_text", req.responseXML, "div");
	var origtexts = getElementsByClass("extend_text", document.getElementById("content"), "div");
	var extend_img = getElementsByClass("show_img", document.getElementById("content"), "div");
	var contents = getElementsByClass("show_content", document.getElementById("content"), "div");
	
	jQuery(extend_img[content_id]).slideToggle(300);
	jQuery(contents[content_id]).slideToggle(300);
	
	origtexts[content_id].innerHTML = resptexts[0].innerHTML;
		
	return false;
}

function show_media() {
	document.getElementById("content").innerHTML = req.responseXML.getElementById("content").innerHTML;
	
	return false;
}

function show_media_extend() {
	var origpics = getElementsByClass("photos", document.getElementById("content"), "div");	
	var resppics = getElementsByClass("photos", req.responseXML, "div");
	
	if(origpics.length == 0) {
		document.getElementById("content").innerHTML = req.responseXML.getElementById("content").innerHTML;
		rotate_photos();
	} else {	
		if(origpics.length > content_id) {
			origpics[content_id].innerHTML = resppics[0].innerHTML;
		} else if(origpics.length > 0) {
			origpics[content_id].innerHTML = resppics[0].innerHTML;
		}
		rotate_photos();
		jQuery(origpics[content_id]).slideToggle(300);
	}
	
	return false;
}

function show_shop() {
	document.getElementById("content").innerHTML = req.responseXML.getElementById("content").innerHTML;
	
	return false;
}

function show_press() {
	document.getElementById("content").innerHTML = req.responseXML.getElementById("content").innerHTML;
	
	return false;
}

function show_bookus() {
	document.getElementById("content").innerHTML = req.responseXML.getElementById("content").innerHTML;
	
	return false;
}

function show_contact() {
	document.getElementById("content").innerHTML = req.responseXML.getElementById("content").innerHTML;
	
	return false;
}

function rotate_label(id, deg) {
	if(id == view_name) return;
	try {
		var div = document.getElementById(id);
		var property = get_transform_property(div);
		
		if(div) {
			div.style[property] = "rotate(" + deg + "deg)";
		}
	} catch (e) {}
}

function rotate_photos() {
	var deg = 0;
	
	try {
		var galleries = getElementsByClass("photos", document.getElementById("content"), "div");

		for(var i = 0; i < galleries.length; i++) {
			var photos = galleries[i].getElementsByTagName("img");
			for(var j = 0; j < photos.length; j++) {
				deg = Math.floor(Math.random() * 9) - 4;
				var property = get_transform_property(photos[j]);
				if(property) {
					photos[j].style[property] = "rotate(" + deg + "deg)";
				}
			}
		}
	} catch(e) {}
}

function set_random_stripes_news() {
	var cur = 0
	
	try {
		var stripes = document.getElementById("content").getElementsByTagName("img");
	
		for(var i = 0; i < stripes.length; i++) {
			if (stripes[i].src.indexOf("stripe_extend") != -1) {
				cur = (cur + 1 + Math.floor(Math.random() * 8)) % 9;
				stripes[i].src = '/data/images/stripe_extend_' + cur + '.png';
			}
		}
	} catch (e) {}
}

function set_random_stripes_shows() {
	var cur = 0
	
	try {
		var stripes = document.getElementById("content").getElementsByTagName("img");
	
		for(var i = 0; i < stripes.length; i++) {
			if (stripes[i].src.indexOf("stripes_shows") != -1) {
				cur = (cur + 1 + Math.floor(Math.random() * 8)) % 9;
				stripes[i].src = '/data/images/stripes_shows' + cur + '.png';
			}
		}
	} catch (e) {}
}

function get_transform_property(element) {
	var properties = [
		'transform',
		'WebkitTransform',
		'MozTransform',
		'msTransform',
		'OTransform'
	];
	var p;
	while (p = properties.shift()) {
		if (typeof element.style[p] != 'undefined') {
		    return p;
		}
	}
	return false;
}

function get_shadow_property(element) {
	var properties = [
		'box-shadow',
		'WebkitBoxShadow',
		'MozBoxShadow',
	];
	var p;
	while (p = properties.shift()) {
		if (typeof element.style[p] != 'undefined') {
		    return p;
		}
	}
	return false;
}

function get_email() {
	var pref = '&#109;a' + 'i&#108;' + '&#116;o'; 
	var attribut = 'hr' + 'ef' + '='; 
	var first = '%62%61%6E%64'; 
	var at = '%40';
	var last = '&#x64;&#x69;&#x72;&#x74;&#x79;&#x76;&#x65;&#x6E;&#x75;&#x73;&#x2E;&#x63;&#x68;'; 
	var first2 = '&#x62;&#x61;&#x6E;&#x64;'; 
	var at2 = '&#x40;'; 
	var last2 = '&#100;&#105;&#114;&#116;&#121;&#118;&#101;&#110;&#117;&#115;&#46;&#99;&#104;';

	var email = '<a ' + attribut + '\'' + pref + ':' + first + at + last + '\'>' + first2 + at2 + last2 + '<\/a>';
	
	return email;
}


