function $(id) { return document.getElementById(id); }
function $c(name) { return document.createElement(name); }

var nn = (document.layers)? true:false;
var ms = (document.all)? true:false;
var n6 = (document.getElementById) ? true:false;


function openWindow(file,szer,wys,scrollec){
	wys = (!wys)?(300):(wys);
	szer = (!szer)?(400):(szer);
	scrollec = (!scrollec)?('no'):('yes');
	if (ms) var xMax = screen.width, yMax = screen.height
	else if (nn) var xMax = window.outerWidth, yMax = window.outerHeight
	var xOffset = (xMax - szer)/2, yOffset = (yMax - wys)/2; 
	okienko = window.open(file,'TWTPop','scrollbars='+scrollec+',height='+wys+',width='+szer+',screenX='+xOffset+',screenY='+yOffset+',top='+yOffset+',left='+xOffset+',resizable=yes');
	okienko.focus();
}

function openPopup(href){
	href = addSize(href);
	openBrowser(href, "Article View");
}

function openCommentsPopup(href){
	href = addSize(href);
	openBrowser(href, "Comments");
}

function openHelpPopup(href){
	href = addSize(href);
	openBrowser(href, "Help");
}

function openSendPopup(href){
	href = addSize(href);
	openBrowser(href, "e-Mail Article", 600, 500);
}

function openUnsubcribeForm(){
	var href = addParameter("/back_office/unsubcribe.xml", "emailF", unsubscribeEmail);
	href = addParameter(href, "userID", unsubscribeUserID);
	href = addParameter(href, "userName", unsubscribeUserName);
	href = addSize(href);
	openBrowser(href, "Newsletter Unsubcribe", 600, 500);
}

function openImageConverterPopup(href){
	href = addSize(href);
	openBrowser(href, "Images Converter");
}

function openWrongComments(href){
	href = addSize(href);
	openBrowser(href, "Wrong Popup", 600, 410);
}

function addSize(href){
	var s = getClientSize();
	href = addParameter(href, "clientWidth", s[0]);
	href = addParameter(href, "clientHeight", s[1]);
	return href;
}

function addParameter(href, param, value){
	if (href.indexOf("?") > -1)
		href += "&";
	else
		href += "?";
	
	return href + param + "=" + value;
}

function getClientSize() {
  var myWidth = 0, myHeight = 0;
  if( typeof( window.innerWidth ) == 'number' ) {
    //Non-IE
    myWidth = window.innerWidth;
    myHeight = window.innerHeight;
  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
    //IE 6+ in 'standards compliant mode'
    myWidth = document.documentElement.clientWidth;
    myHeight = document.documentElement.clientHeight;
  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
    //IE 4 compatible
    myWidth = document.body.clientWidth;
    myHeight = document.body.clientHeight;
  }
  return [myWidth, myHeight]
}

function getScrollXY() {
  var scrOfX = 0, scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
  }
  return [ scrOfX, scrOfY ];
}


// ListNavigator ---------------------------------------------------------------
function onListNavigatorChange(form)
{
    if (!form) form = document.navigatorForm;
    if (form) form.submit()
    else alert("'navigatorForm' form not found.");
}

/* ----------------------------------------------------------------------
	INDEX
---------------------------------------------------------------------- */
function showIndex(){
	if(window.opener)
		return false;
	
	var width, height;
	
	if (screen.width)
		width = screen.width;
	else
		width = window.outerWidth;
		
	
	if (screen.height)
		height = screen.height;
	else
		height = window.outerHeight;
	
	var newWin = window.open('/index.xml','eEdition','scrollbars=no,height='+height+',width='+width+',screenX=1,screenY=1,top=1,left=1,resizable=no');
	if (newWin)
		window.location = '/blank.xml';
}


/* ----------------------------------------------------------------------
	FLASH DETECTION
---------------------------------------------------------------------- */
function loginFlashDetect(){
	var PlayerVersion = new deconcept.SWFObjectUtil.getPlayerVersion();
	if (PlayerVersion.major >= 9)
		return;
	
	var lc = document.getElementById("login_content");
	if (!lc)
		return;
	
	var c = "<div id='instalFlashPlayer'>";
	c +=	"<p>The Washington Times eEdition requires <strong>Adobe&#160;Flash&#160;Player&#160;9</strong> to function.  We see that you are currently using an earlier version of Flash Player.  Please click the link below in order to update your plug-in and enjoy the eEdition.</p>";
	c +=	"<p class='player'><a href='http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash' title='get Flash Player'>get Flash Player</a></p>";
	c +=	"</div>";
	lc.innerHTML = c;
		
	return;
}

function loginBrowserDetect(){
	var agt = navigator.userAgent.toLowerCase();
	var browserName = "";
	var browserOS = "";
	var browserVersion = "";
	var browserIsCorrect = true;
	
	//Safari test
	if (agt.indexOf("safari") > -1){
		browserName = "Safari";
		var pos1 = agt.indexOf("version/");
		var pos2 = agt.indexOf(" ", pos1);
		browserVersion = agt.substring(pos1 + 8, pos2);
		if (parseInt(browserVersion) < 3)
			browserIsCorrect = false;
	}
	
	if (agt.indexOf("mac") > -1)
		browserOS = "Macintosh";
	
	if (agt.indexOf("windows") > -1)
		browserOS = "Windows";
	
	if (agt.indexOf("linux") > -1)
		browserOS = "Linux";
	
	/*
	alert("navigator.appName = " + navigator.appName
			+ "\nnavigator.appCodeName = " + navigator.appCodeName
			+ "\nnavigator.appMinorVersion = " + navigator.appMinorVersion
			+ "\n\nnavigator.appVersion = " + navigator.appVersion
			+ "\n\nnavigator.userAgent = " + navigator.userAgent);
			* http://www.quirksmode.org/js/detect.html
	*/
	
	if (browserIsCorrect)
		loginFlashDetect();
	else {
		var lc = document.getElementById("login_content");
		if (!lc)
			return;
	
		var c = "<div id='instalFlashPlayer'>";
		c +=	"<p>We see that you are currently utilizing <b>" + browserName + "</b> version <b>" + browserVersion + "</b> for <b>" + browserOS + "</b>.  This browser is not supported by The Washington Times eEdition.  Please log in utilizing an alternative web browser.</p>";
		c +=	"</div>";
		lc.innerHTML = c;
	}
}


/* ----------------------------------------------------------------------
	CHANGE FONT SIZE
---------------------------------------------------------------------- */
function changeFontSize(fontSize, el){
	//article_midle
	var art_article_midle = document.getElementById("article_midle");
	var art_title = document.getElementById("title");
	
	if (!art_article_midle || !art_title)
		return;
	
	art_article_midle.className = "resizeable_" + fontSize;
	art_title.className = "resizeable_" + fontSize;
	setCookie("TWTFontSize", fontSize);
}


/* ----------------------------------------------------------------------
	COOKIE
---------------------------------------------------------------------- */
function getCookie(name)
{
	var arg	= name + '=';
	var alen = arg.length;
	var	clen =document.cookie.length;
	var i = 0;
	while (i<clen)
	{
		var j = i + alen;
		if (document.cookie.substring(i,j)==arg) return getCookieVal(j);
		i = document.cookie.indexOf(" ",i) + 1;
		if (i==0) break;
	};
	return null;
}

function setCookie(name,value,path,expires)
{
	str = name + "=" + value;
	if (expires) str += " ;expires="+expires;
        if (path) str += " ;path="+path;
	document.cookie = str;
}

function getCookieVal(offset)
{
	var endstr = document.cookie.indexOf(";", offset);
	if (endstr==-1) endstr = document.cookie.length;
	return unescape(document.cookie.substring(offset,endstr));
};

function delCookie(name)
{
	if (getCookie(name))
    	document.cookie = name + "=; expires=Thu, 01-Jan-70 00:00:01 GMT";
}


/* ----------------------------------------------------------------------
	DISABLE FORM
---------------------------------------------------------------------- */
function disableTWTForms(){
	allTags = null;
	
	//Disabled All Input
	allTags = document.getElementsByTagName("input");
	if (allTags) {
		for (q=0; q<allTags.length; q++) {
			obj = allTags[q];
			obj.readOnly = true;
			obj.style.color = "#aaa";
			
			if (obj.className == "calendarButton")
				obj.style.display = "none";
		}
	}
	
	//Change Label Color
	allTags = document.getElementsByTagName("label");
	if (allTags) {
		for (q=0; q<allTags.length; q++) {
			obj = allTags[q];
			obj.style.color = "#999";
		}
	}
	
	//Disabled All Button
	allTags = document.getElementsByTagName("button");
	if (allTags) {
		for (q=0; q<allTags.length; q++) {
			obj = allTags[q];
			obj.style.display = "none";
		}
	}
	
	try{
		if (fileBro){
			fileBro.hiddenAll();
			fileBrowseHiddenall();
		}
	}
	catch(e){
		//alert(e + "\n" + e.number + "\n" + e.description);
	}
	
	showPreloader();
	return true;
}

function showPreloader(){
	var content = document.getElementById("content");
	var preloader = document.getElementById("preloader");
	
	if (!content || !preloader)
		return false;
	content.style.display = "none";
	preloader.innerHTML = insertPreloader("Processing...", "Note that this might take a few minutes.");
}

function insertPreloader(txt, txt2){
	var swf = new FlashTag("/swf/load_lcon2_small.swf", 208, 109);
	var pre = "<div class='proloader'>";
	pre += "<div>" + swf.toString() + "</div>";
	pre += "<h6>" + txt + "</h6>";
	pre += "<p>" + txt2 + "</p>";
	pre += "</div>";
	return pre;
}

function insertEditionPreloader(edition_id){
	var swf = new FlashTag("/swf/edition_progres.swf", 400, 300);
	swf.flashVars = "edition_id=" + edition_id;
	var pre = "<div class='proloader'>";
	pre += "<div>" + swf.toString() + "</div>";
	pre += "</div>";
	return pre;
}



/* ----------------------------------------------------------------------
	ADD EVENT
---------------------------------------------------------------------- */
function addEvent(obj, type, fn){
  if (obj.addEventListener){
    obj.addEventListener(type, fn, false);
  } else if (obj.attachEvent){
   	obj["e"+type+fn] = fn;
    obj[type+fn] = function(){obj["e"+type+fn](window.event);}
    obj.attachEvent("on"+type, obj[type+fn]);
  }
}

function aEL(o,t,f){
	var a=Array.prototype.slice.call(arguments,3)
	o[t+f]=function(e){return !1===f.apply(o,[e||window.event].concat(a))?e.preventDefault?e.preventDefault():!1:1}
	return(o.x=o.addEventListener)?o.x(t,o[t+f],!1):(o.x=o.attachEvent)?o.x('on'+t,o[t+f]):!1;
}


/* ----------------------------------------------------------------------
	CREATE OBJECT
---------------------------------------------------------------------- */
function createObject(divID) {
	if(document.layers){
		return document.layers[divID+'C'].document.layers[divID];
	}
	if(document.getElementById) {
		return document.getElementById(divID);
	}
	if(document.all) {
		return document.all[divID];
	}
	if(document[divID+'C']) {
		return document[divID+'C'].document[divID];
	}
	return false;
}

/* ----------------------------------------------------------------------
	BROWSER
---------------------------------------------------------------------- */
var newBrowserWidth = 800;
var newBrowserHidth = 700;

function openBrowser(path, title, wD, hD){
	var d = BR_CreateBrowser(title);
	
	var size = getClientSize();
	var w = (newBrowserWidth > size[0])?(size[0] - 20):(newBrowserWidth);
	var h = (newBrowserHidth > size[1])?(size[1] - 40):(newBrowserHidth);
	
	if (wD != undefined)
		w = wD;
	
	if (hD != undefined)
		h = hD;
	
	var mpContent = BR_CreateNewTag("div", "mpContent", "normalContent");
	mpContent.innerHTML = "<iframe id=\"iframe_box\" width=\"" + w + "\" scroll=\"yes\" height=\"" + h + "\" frameborder=\"0\" style=\"padding: 0;\" src=\"" + path + "\" />";
	
	d.appendChild(mpContent);
	
	BR_resize(d, w);
	BR_setPosition(d);
	
}


/* ----------------------------------------------------------------------
	OPEN MEDIA VIEW
---------------------------------------------------------------------- */
function openMediaView(path, caption, type){
	if (type == "jpg")
		openMediaImage(path, caption, type);
	
	if (type == "flv")
		openMediaVideo(path, caption, type);
}

function openMediaImage(path, caption, type){
	var d = BR_CreateBrowser("Image");
	
	//Set image size
	var size = getClientSize();
	var widthMax = 650;
	var heightMax = 550;	
	widthMax = (widthMax > (size[0] - 50))?(size[0] - 500):(widthMax);
	heightMax = (heightMax > (size[1] - 100))?(size[0] - 100):(heightMax);
	
	//Content
	var mpContent = BR_CreateNewTag("div", "mpContent", "mediaContent");
	
	var a = BR_CreateNewTag("a", "mpA");
	var newAttr = document.createAttribute("href");
    newAttr.nodeValue = "#1";
    a.setAttributeNode(newAttr);
	
	var img = BR_CreateNewTag("img", "mpImg");
	newAttr = document.createAttribute("src");
    newAttr.nodeValue = "/converter?widthMax=" + widthMax + "&heightMax=" + heightMax + "&img=" + path;
    img.setAttributeNode(newAttr);
	a.appendChild(img);
	
	mpContent.appendChild(a);
	mpContent.style.display="none";
	d.appendChild(mpContent);
	
	//Preloader
	var preloader = BR_CreateNewTag("div", "mpPreloader");
	var swf = new FlashTag("/swf/load_lcon2_small.swf", 208, 109);
	preloader.innerHTML = swf.toString() + "<p>Loading Media...</p>";
	preloader.style.display="block";
	d.appendChild(preloader);	
	BR_resize(d, 300);
	BR_setPosition(d);
	
	if (img.complete)
		openMediaImageOnLoad();
	else
		addEvent(img, "load", openMediaImageOnLoad);
		
	addEvent(a, "click", BR_closeBrowser);
}

function openMediaImageOnLoad(){
	var mp = document.getElementById("mp");
	var mpPreloader = document.getElementById("mpPreloader");
	var mpContent = document.getElementById("mpContent");
	var mpImg = document.getElementById("mpImg");
	if (!mp || !mpPreloader || !mpContent)
		return;
	
	mpPreloader.style.display = "none";
	mpContent.style.display = "block";
	BR_resize(mp, mpImg.offsetWidth+20);
	BR_setPosition(mp);
}


function openMediaVideo(path, caption, type){
	var d = BR_CreateBrowser("Video");
	
	var mpContent = BR_CreateNewTag("div", "mpContent", "normalContent");
	var swf = new FlashTag("/swf/flvplayer.swf", 500, 400);
	swf.flashVars = "path=" + path;
	mpContent.innerHTML = "<div>" + swf.toString() + "</div>";
	d.appendChild(mpContent);
	
	BR_resize(d, 500);
	BR_setPosition(d);
}


/* ----------------------------------------------------------------------
	BROWSER ENGINE
---------------------------------------------------------------------- */
var BR_BrowserIsOpen = false;

function BR_closeBrowser(){
	BR_BrowserIsOpen = false;
	
	if (BR_isFirefoxOnMac()){
		var e_edition = document.getElementById("eeditionBrowser");
		if (e_edition)
			e_edition.style.visibility = "visible";
	}
	
	var mp = document.getElementById("mp");
	if (!mp)
		return;
	mp.parentNode.removeChild(mp.parentNode.lastChild);
	
	var mpMask = document.getElementById("mpMask");
	if (!mpMask)
		return;
	
	mpMask.parentNode.removeChild(mpMask.parentNode.lastChild);
}

function BR_CreateBrowser(title){
	BR_closeBrowser();
	BR_addMask();
	var d = BR_CreateNewTag("div", "mp");
	BR_addHeader(d, title);
	
	document.body.appendChild(d);
	BR_BrowserIsOpen = true;
	return d;
}

function BR_resize(d, el_width){
	d.style.width = el_width + "px";
	//alert("mpContent.offsetWidth = " + el_width);
}

function BR_setPosition(d){
	var scrolXY = getScrollXY();
	var size = getClientSize();
	var w = d.offsetWidth;
	//var sw = document.body.offsetWidth;
	d.style.left = ((size[0] - w) / 2) + "px";
	
	var h = d.offsetHeight;
	var sh = document.documentElement.clientHeight;
	//window.pageYOffset
	d.style.top = (((size[1] - h) / 2)+scrolXY[1]) + "px";
}













function BR_addMask(){
	var m = BR_CreateNewTag("div", "mpMask");
	document.body.appendChild(m);
	
	var swf = new FlashTag("/swf/mask.swf", document.documentElement.clientWidth, document.body.offsetHeight);
	swf.scale = "scale";
		
	//iFarmae w Firefoxe na MAC nie wyswietla scrolla kiedy maska jest flashowa
	if (BR_isFirefoxOnMac()){
		
		var e_edition = document.getElementById("eeditionBrowser");
		if (e_edition){
			m.innerHTML = "<div class=\"firefoxMacMaskEdition\" style=\"height: " + document.body.offsetHeight + "px;\">&#160;</div>";
			e_edition.style.visibility = "hidden";
		} else
			m.innerHTML = "<div class=\"firefoxMacMask\" style=\"height: " + document.body.offsetHeight + "px;\">&#160;</div>";
			
		
	} else {
		m.innerHTML = swf.toString();
	}
	
	//m.style.height = document.body.offsetHeight + "px";
}

function BR_isFirefoxOnMac(){
	var agt = navigator.userAgent.toLowerCase();
	if (agt.indexOf("mac") > -1 && agt.indexOf("firefox") > -1)
		return true;
	else
		return false;
}

function BR_addHeader(d, tile){
	var mpHeader = BR_CreateNewTag("div", "mpHeader");
	mpHeader.innerHTML = "<h3 title=" + tile + ">" + tile + "</h3><div class='mpClose'><a href='#1' onClick='BR_closeBrowser();' title='Close Window'>Close Window&#160;&#160;&#160;&#160;&#160;&#160;&#160;</a></div>";
	d.appendChild(mpHeader);
}

function BR_CreateNewTag(tagName, id, className){
	var tag = document.createElement(tagName);
	
	var newAttr;
	if (id != undefined){
		newAttr = document.createAttribute("id");
    	newAttr.nodeValue = id;
    	tag.setAttributeNode(newAttr);
	}
    if (className != undefined){
    	newAttr = document.createAttribute("class");
    	newAttr.nodeValue = className;
    	tag.setAttributeNode(newAttr);
    }
    return tag;
}

function BR_addAttribute(element, attributeName, attributeValue){
	if (attributeName != undefined){
    	var newAttr = document.createAttribute(attributeName);
    	newAttr.nodeValue = attributeValue;
    	element.setAttributeNode(newAttr);
    }
}


/* ----------------------------------------------------------------------
	MEDIA
---------------------------------------------------------------------- */
function mediaConverter(){
	this.mediaList = [];
	this.filePath = "";
	this.container = document.getElementById("mediaList");
}

mediaConverter.prototype.addMedia = function(mediaName, mediaId){
	var obj = new Object();
	obj.mediaName = mediaName;
	obj.mediaId = mediaId;
	this.mediaList[this.mediaList.length] = obj;
}

mediaConverter.prototype.convert = function(){
	if (!this.container){
		alert("Canot find container!");
		return;
	}
	if (this.filePath.length < 1){
		alert("Set files path!");
		return;
	}
	
	if (this.filePath.substr(this.filePath.length, 1) != "/");
		this.filePath += "/";
	
	for (q=0; q<this.mediaList.length; q++)
		this.addNewLine(q);
}

mediaConverter.prototype.addNewLine = function(obj){
	var m = BR_CreateNewTag("div", "convertMedium" + this.mediaList[q].mediaId, "medium mediumNoConvert");
	
	var p = BR_CreateNewTag("p");
	BR_addAttribute(p, "class", "mediumName");
	p.innerHTML = "<a href='" + this.filePath + this.mediaList[q].mediaName + "' target='_blank'>" + this.mediaList[q].mediaName + "</a>";
	m.appendChild(p);
	
	var i = BR_CreateNewTag("div");
	BR_addAttribute(i, "class", "statusContainer");
	i.appendChild(this.addDivImage("Small image ......", this.mediaList[q].mediaName, 158, 158));
	i.appendChild(this.addDivImage("Big image ......", this.mediaList[q].mediaName, 650, 550));
	m.appendChild(i);
	
	this.container.appendChild(m);
	this.mediaList[q].objMediumLine = m;
}

mediaConverter.prototype.addDivImage = function(desc, imgSrc, width, height){
	var di = BR_CreateNewTag("div");
	BR_addAttribute(di, "class", "weitToMedium");
	
	
	di.innerHTML = "<p><a href=\"" + this.getSrc(imgSrc, width, height) + "\" target=\"_blank\" >" + desc + "</a></p>";
	
	di.appendChild(this.addImage(this.mediaList[q].mediaName, width, height));
	return di;
}

mediaConverter.prototype.addImage = function(imgSrc, width, height){
	var src = this.getSrc(imgSrc, width, height);
	var img = BR_CreateNewTag("img");
	BR_addAttribute(img, "src", src);
    
	//Wyjatek do IE tylko w tym przypadku
	if (img.addEventListener)
     	addEvent(img, "load", convertImageComplete);
 	else if (img.attachEvent)
 		aEL(img, "load", convertImageComplete);
	
	return img;
}

mediaConverter.prototype.getSrc = function(imgSrc, width, height){
	return "/converter?heightMax=" + height + "&widthMax=" + width + "&center-crop=1&img=" + this.filePath + imgSrc;
}

function convertImageComplete(sa){
	var parentNode = this.parentNode;
	
	var p = parentNode.firstChild;
	var content = p.innerHTML.substr(0, p.innerHTML.indexOf("..."));
	
	parentNode.innerHTML = "<p>" + content + " <span>Convert Complete</span></p>";
	parentNode.className = "weitToMediumComplete";
	
	//Czu obydwa przekonwerotwane
	var nextImage = parentNode.nextSibling;
	if (!nextImage)
		nextImage = parentNode.previousSibling;
	
	if (!nextImage)
		return;
	
	if (nextImage.className == "weitToMediumComplete") {
		parentNode = parentNode.parentNode.parentNode;
		parentNode.className = "medium mediumConvert";
	}	
}


/* ----------------------------------------------------------------------
	SET FORM FOCUS
---------------------------------------------------------------------- */
function setFormFocus(){
	var allTagsInput = null;
	allTagsInput = document.getElementsByTagName("input");
	if (allTagsInput) {
		for (q=0; q<allTagsInput.length; q++) {
			obj = allTagsInput[q];
			if (obj.type == "text"){
				obj.focus();
				return;
			}
		}
	}
	
//	var allTagsTA = document.getElementsByTagName("textarea");
//	if (allTagsTA)
//		if (allTagsTA.length > 0)
//			allTagsTA[0].focus();
}

addEvent(window, "load", setFormFocus);


