/*
var Popup = Class.create();
Popup.prototype = {
    initialize: function(options) {
	this.options = {
	    url: '#',
	    width: 300,
	    height: 300
	}
	Object.extend(this.options, options || {});
	window.open(this.options.url, '', 'width='+this.options.width+',height='+this.options.height);
    }
}
new Popup({url:'http://www.yahoo.com/'});
*/


var WipInline = {
    wi_queryString: function () {
	var params = {};
	try {
	    var query_string = window.location.search.split("?")[1];
	    if (query_string) {
		params = query_string.toQueryParams();
	    }
	} catch (err) {	}

	return params;
    },
    wi_readCookie: function (c_name) {
	if (document.cookie.length > 0) {

	    var re = new RegExp('[^a-z_]'+c_name+'=');
	    // Debug info.
	    var params  = this.wi_queryString();
	    if (params.debug_alert) {
		alert('c_name:' + c_name + ' ; cookie:' + document.cookie + ' re:' + re);
	    }

	    if (document.cookie.match(re)) {
		var c_start = document.cookie.indexOf(c_name + "=");
		if (c_start != -1) {
		    c_start = c_start + c_name.length + 1;
		    c_end = document.cookie.indexOf(";", c_start);
		    if (c_end == -1) {
			c_end=document.cookie.length;
		    }
		    var cookie_part = document.cookie.substring(c_start,c_end);
		    // Debug
		    if (params.debug_alert) { alert('cookie_part:' + cookie_part); }

		    if (cookie_part) {
			return unescape(cookie_part);
		    }
		}
	    }
	}
    },
    wi_popup: function () {
	//document.write('<link rel="stylesheet" href="/tools/wip_v4/inline/css/popup.css" type="text/css" />');
	var mylink = new Element('link', { 'rel': 'stylesheet', href: '/tools/wip_v4/inline/css/popup.css', type: 'text/css' });
	$(document.body).insert({top: mylink});

	//document.write('<div class="wipinline_css_admin" id="wipinline_css_admin"></div>');
	var mycssadmin = new Element('div', { 'class': 'wipinline_css_admin', id: 'wipinline_css_admin' });
	$(document.body).insert({top: mycssadmin});

	//document.write('<div class="wipinline_status" id="wipinline_status" style="display:none;"></div>');
	var mycssstatus = new Element('div', { 'class': 'wipinline_status', id: 'wipinline_status', style: 'display:none;' });
	$(document.body).insert({top: mycssstatus});

    },
    wi_menu: function (myclass) {
	$$('.' + myclass).each( function (ul) {
		// Find all ul elements matching input classname
		var lis = ul.childElements().findAll(function (elt) {
			return elt.match('li');
		    });
		// Parse all items and add event observe with function
		lis.each(function(li, index) {
			li.observe('click', function(ev) {
				var el = ev.element().up('li');
				// Get parent ul and remove current from all li elements.
				var ul = el.up('ul');
				//alert('ul:' + ul);
				var lis = ul.childElements().findAll(function (elt) {
					return elt.match('li');
				    });
				lis.each(function(li, index) {
					li.removeClassName('active');
					//alert('li:' + li);
				    });
				el.addClassName('active');
				//alert('adding classname, li:' + el + 'html:' + el.innerHTML);
			    });
		    });
	    });

    },
    wi_setup: function (objid, script_name, func) {
	var params  = this.wi_queryString();
	var cookie  = this.wi_readCookie('WiP_Admin_Ticket');
	if (!cookie) {
	    cookie  = this.wi_readCookie('Ticket');
	}
	if (cookie) {
	    var array   = cookie.split("&");
	    var user    = array[1];
	    var myenv   = {};
	    try {
		if (env) {
		    myenv = env;
		}
	    } catch (err) { }

	    var inline = {
		css:      '<link rel="stylesheet" href="/tools/wip_v4/inline/css/default.css" type="text/css" />'
	    };
	    if (user) {
		this.wi_edit();
		$('wipinline_css_admin').update(inline.css);

	    }
	}
    },
    wi_edit: function () {
	// WiP::Article::title
	$$('._wtt').each( function(el) {
		//el.addClassName('wip_article_title');
		new Ajax.InPlaceEditor(
				       el,
				       '/tools/wip_v4/admin/inline/edit.epl', {
					   callback: function(form, value) { return 'action=save&id='+el.id+'&f=teaser_title&value='+encodeURIComponent(value) },
					   okText: 'Save',
					   cancelControl: 'button',
					   cancelText: 'Cancel',
					   highlightColor: '',
					   highlightEndColor: '',
					   formClassName: '_wtt edit',
					   rows: 1,
					   loadTextURL: '/tools/wip_v4/admin/inline/load.epl'
				       }
				      );
	    });
	$$('._wlt').each( function(el) {
		//el.addClassName('wip_article_title');
		new Ajax.InPlaceEditor(
				       el,
				       '/tools/wip_v4/admin/inline/edit.epl', {
					   callback: function(form, value) { return 'action=save&id='+el.id+'&f=lead_title&value='+encodeURIComponent(value) },
					   okText: 'Save',
					   cancelControl: 'button',
					   cancelText: 'Cancel',
					   highlightColor: '',
					   highlightEndColor: '',
					   formClassName: '_wlt edit',
					   rows: 1,
					   loadTextURL: '/tools/wip_v4/admin/inline/load.epl'
				       }
				      );
	    });
	$$('._wt').each( function(el) {
		//el.addClassName('wip_article_title');
		new Ajax.InPlaceEditor(
				       el,
				       '/tools/wip_v4/admin/inline/edit.epl', {
					   callback: function(form, value) { return 'action=save&id='+el.id+'&f=title&value='+encodeURIComponent(value) },
					   okText: 'Save',
					   cancelControl: 'button',
					   cancelText: 'Cancel',
					   highlightColor: '',
					   highlightEndColor: '',
					   formClassName: '_wt edit',
					   rows: 1,
					   loadTextURL: '/tools/wip_v4/admin/inline/load.epl'
				       }
				      );
	    });
	$$('._wrm').each( function(el) {
		//el.addClassName('wip_article_title');
		new Ajax.InPlaceEditor(
				       el,
				       '/tools/wip_v4/admin/inline/edit.epl', {
					   callback: function(form, value) { return 'action=save&id='+el.id+'&f=read_more&value='+encodeURIComponent(value) },
					   okText: 'Save',
					   cancelControl: 'button',
					   cancelText: 'Cancel',
					   highlightColor: '',
					   highlightEndColor: '',
					   formClassName: '_wrm edit',
					   rows: 1,
					   loadTextURL: '/tools/wip_v4/admin/inline/load.epl'
				       }
				      );
	    });
	$$('._wi').each( function(el) {
		//el.addClassName('wip_article_ingress');
		new Ajax.InPlaceEditor(
				       el,
				       '/tools/wip_v4/admin/inline/edit.epl', {
					   callback: function(form, value) { return 'action=save&id='+el.id+'&f=ingress&value='+encodeURIComponent(value) },
					   okText: 'Save',
					   cancelControl: 'button',
					   cancelText: 'Cancel',
					   highlightColor: '',
					   highlightEndColor: '',
					   formClassName: '_wi edit',
					   rows: 8,
					   //onEnterEditMode: function (form, value) { alert(form.id + ':' + $(form)); /*.insert({before : '<div>foobar</div>'})*/ },
					   loadTextURL: '/tools/wip_v4/admin/inline/load.epl'
				       }
				      );
	    });
	$$('._wti').each( function(el) {
		//el.addClassName('wip_article_ingress');
		new Ajax.InPlaceEditor(
				       el,
				       '/tools/wip_v4/admin/inline/edit.epl', {
					   callback: function(form, value) { return 'action=save&id='+el.id+'&f=teaser_ingress&value='+encodeURIComponent(value) },
					   okText: 'Save',
					   cancelControl: 'button',
					   cancelText: 'Cancel',
					   highlightColor: '',
					   highlightEndColor: '',
					   formClassName: '_wti edit',
					   rows: 8,
					   loadTextURL: '/tools/wip_v4/admin/inline/load.epl'
				       }
				      );
	    });
	$$('._wb').each( function(el) {
		//el.addClassName('wip_article_body');
		new Ajax.InPlaceEditor(
				       el,
				       '/tools/wip_v4/admin/inline/edit.epl', {
					   callback: function(form, value) { return 'action=save&id='+el.id+'&f=body&value='+encodeURIComponent(value) },
					   okText: 'Save',
					   cancelControl: 'button',
					   cancelText: 'Cancel',
					   highlightColor: '',
					   highlightEndColor: '',
					   formClassName: '_wb edit',
					   rows: 20,
					   loadTextURL: '/tools/wip_v4/admin/inline/load.epl'
				       }
				      );
	    });

	$$('._wcti').each( function(el) {
		//el.addClassName('wip_article_body');
		new Ajax.InPlaceEditor(
				       el,
				       '/tools/wip_v4/admin/inline/edit.epl', {
					   callback: function(form, value) { return 'action=save&id='+el.id+'&f=custom_text_1&value='+encodeURIComponent(value) },
					   okText: 'Save',
					   cancelControl: 'button',
					   cancelText: 'Cancel',
					   highlightColor: '',
					   highlightEndColor: '',
					   formClassName: '_wct edit',
					   rows: 20,
					   loadTextURL: '/tools/wip_v4/admin/inline/load.epl'
				       }
				      );
	    });
	$$('._wctii').each( function(el) {
		//el.addClassName('wip_article_body');
		new Ajax.InPlaceEditor(
				       el,
				       '/tools/wip_v4/admin/inline/edit.epl', {
					   callback: function(form, value) { return 'action=save&id='+el.id+'&f=custom_text_2&value='+encodeURIComponent(value) },
					   okText: 'Save',
					   cancelControl: 'button',
					   cancelText: 'Cancel',
					   highlightColor: '',
					   highlightEndColor: '',
					   formClassName: '_wct edit',
					   rows: 20,
					   loadTextURL: '/tools/wip_v4/admin/inline/load.epl'
				       }
				      );
	    });
	$$('._wctiii').each( function(el) {
		//el.addClassName('wip_article_body');
		new Ajax.InPlaceEditor(
				       el,
				       '/tools/wip_v4/admin/inline/edit.epl', {
					   callback: function(form, value) { return 'action=save&id='+el.id+'&f=custom_text_3&value='+encodeURIComponent(value) },
					   okText: 'Save',
					   cancelControl: 'button',
					   cancelText: 'Cancel',
					   highlightColor: '',
					   highlightEndColor: '',
					   formClassName: '_wct edit',
					   rows: 20,
					   loadTextURL: '/tools/wip_v4/admin/inline/load.epl'
				       }
				      );
	    });

	$$('._wkt').each( function(el) {
		new Ajax.InPlaceEditor(
				       el,
				       '/tools/wip_v4/admin/inline/keyword_edit.epl', {
					   callback: function(form, value) { return 'action=save&id='+el.id+'&f=title&value='+encodeURIComponent(value) },
					   okText: 'Save',
					   cancelControl: 'button',
					   cancelText: 'Cancel',
					   highlightColor: '',
					   highlightEndColor: '',
					   formClassName: '_wkt edit',
					   rows: 1,
					   loadTextURL: '/tools/wip_v4/admin/inline/keyword_load.epl'
				       }
				      );
	    });
	$$('._wkd').each( function(el) {
		new Ajax.InPlaceEditor(
				       el,
				       '/tools/wip_v4/admin/inline/keyword_edit.epl', {
					   callback: function(form, value) { return 'action=save&id='+el.id+'&f=description&value='+encodeURIComponent(value) },
					   okText: 'Save',
					   cancelControl: 'button',
					   cancelText: 'Cancel',
					   highlightColor: '',
					   highlightEndColor: '',
					   formClassName: '_wkd edit',
					   rows: 20,
					   loadTextURL: '/tools/wip_v4/admin/inline/keyword_load.epl'
				       }
				      );
	    });
	$$('._wflag').each( function(el) {
	    Event.observe(el, 'change', function (ev) {
		//ev.stop();
		var element = Event.element(ev);
		new Ajax.Request("/tools/wip_v4/admin/inline/edit.epl", {
		    method: "post",
		    onSuccess: function(transport) {
			element.insert({after : transport.responseText});
			//$debug.update(transport.responseText);
		    }.bind(this),
		    // callback: function(form, value) { return 'action=save&id='+el.id+'&f=body&value='+encodeURIComponent(value) },
		    parameters: { action: 'save', id: element.id, f: element.readAttribute('name'), value: (element.checked ? 't' : 'f'), debug: '' }
		});
	    });
	});


    }
}


// Extend document object with new functions.
Object.extend(document, WipInline);


//------------------------------------------------------------------------------------------
// Init functions we think you need after dom is loaded
// Event.observe(window, 'load', function() {
document.observe("dom:loaded", function(){
	//wipInline.popup();
	document.wi_popup();
	document.wi_setup();

	var keydown;
	// Observe key down.
	//Event.observe(document, 'keydown', function(e){
	//	var code;
	//	if (!e) var e = window.event;
	//	if (e.keyCode) code = e.keyCode;
	//	else if (e.which) code = e.which;
	//	keydown = String.fromCharCode(code);
	//	//var character = String.fromCharCode(code);
	//	//# $('wipinline_status').update('<div id="wipinline_popup"  class="popup">' + 'Keydown: Character was "' + character + '", code is "' + code + '"' + '</div>');
	//	//alert('Character was "' + character + '", code is "' + code + '"');
	//    });

	// Observe key press. When a user press a key and releases it.
	Event.observe(document, 'keydown', function(e){
		var altDown  = e.altKey;
		var ctrlDown = e.ctrlKey;
		var timer;
		var code;
		if (!e) var e = window.event;
		if (e.keyCode) code = e.keyCode;
		else if (e.which) code = e.which;
		if (altDown && ctrlDown && (code==76 || code==68 || code==69 || code==78 || code==83 || code==84 || code==87 || code==72 || code==70 || code==65 || code==66 || code==77) ) {
		    var character = String.fromCharCode(code);
		    var action = '';
		    e.stop();
		    clearTimeout(timer);
		    var fdat = document.wi_queryString();
		    var SCRIPT_NAME = '';
		    var WIP_PAGE_ID = '';
		    var WIP_PAGE_SYMID = '';
		    try {
			SCRIPT_NAME     = env.SCRIPT_NAME;
			WIP_PAGE_ID     = env.WIP_PAGE_ID;
			WIP_PAGE_SYMID  = env.WIP_PAGE_SYMID;
		    } catch (e) { }
		    switch (code) {
			case 65: // Alt+Ctrl+A - Admin
			    action = 'admin';
			    Effect.Appear($('wipinline_status'))
			    new Ajax.Updater($('wipinline_status'), '/tools/wip_v4/inline/ajax/wip_admin.epl', {
				    parameters: { div: 'wipinline_status', id: fdat.id, cid: fdat.cid, kid: fdat.kid, q: fdat.q, md5:fdat.md5, href: document.location.href, script_name: SCRIPT_NAME, page_id: WIP_PAGE_ID, page_symid: WIP_PAGE_SYMID },
				    evalScripts: true
			    });
			    break;
			case 66: // Alt+Ctrl+B - Bug
			    action = 'bugreport';
			    Effect.Appear($('wipinline_status'))
			    new Ajax.Updater($('wipinline_status'), '/tools/wip_v4/inline/ajax/wip_bug_report.epl', {
				    parameters: { div: 'wipinline_status', id: fdat.id, cid: fdat.cid, kid: fdat.kid, q: fdat.q, md5:fdat.md5, href: document.location.href, script_name: SCRIPT_NAME, page_id: WIP_PAGE_ID, page_symid: WIP_PAGE_SYMID },
				    evalScripts: true
			    });
			    break;
			case 72: // Alt+Ctrl+H - Help
			    action = 'help';
			    Effect.Appear($('wipinline_status'))
			    new Ajax.Updater($('wipinline_status'), '/tools/wip_v4/inline/ajax/wip_help.epl', {
				    parameters: { div: 'wipinline_status', id: fdat.id, cid: fdat.cid, kid: fdat.kid, q: fdat.q, md5:fdat.md5, href: document.location.href, script_name: SCRIPT_NAME, page_id: WIP_PAGE_ID, page_symid: WIP_PAGE_SYMID },
				    evalScripts: true
			    });
			    break;
			case 70: // Alt+Ctrl+F - Facebook
			    action = 'facebook';
			    Effect.Appear($('wipinline_status'))
			    new Ajax.Updater($('wipinline_status'), '/tools/wip_v4/inline/ajax/wip_facebook_this.epl', {
				    parameters: { div: 'wipinline_status', id: fdat.id, cid: fdat.cid, kid: fdat.kid, q: fdat.q, md5:fdat.md5, href: document.location.href, script_name: SCRIPT_NAME, page_id: WIP_PAGE_ID, page_symid: WIP_PAGE_SYMID },
				    evalScripts: true
			    });
			    break;
			case 76: // Alt+Ctrl+L - Login
			    action = 'login';
			    Effect.Appear($('wipinline_status'))
			    new Ajax.Updater($('wipinline_status'), '/tools/wip_v4/inline/ajax/wip_admin_login.epl', {
				    parameters: { div: 'wipinline_status', id: fdat.id, cid: fdat.cid, kid: fdat.kid, q: fdat.q, md5:fdat.md5, href: document.location.href, script_name: SCRIPT_NAME, page_id: WIP_PAGE_ID, page_symid: WIP_PAGE_SYMID },
				    evalScripts: true
			    });
			    //$('wipinline_status').update('<div style="display: block;" id="wipinline_box" class="wipinline_box">' + 'Keypress: Character was "' + character + '", code is "' + code + '"' + ', action is: "' + action + '" alt: '+altDown+' ctrl: '+ctrlDown+'</div>');
			    break;
			case 77: // Alt+Ctrl+M - Mypage
			    action = 'mypage';
			    Effect.Appear($('wipinline_status'))
			    new Ajax.Updater($('wipinline_status'), '/tools/wip_v4/inline/ajax/wip_mypage.epl', {
				    parameters: { div: 'wipinline_status', id: fdat.id, cid: fdat.cid, kid: fdat.kid, q: fdat.q, md5:fdat.md5, href: document.location.href, script_name: SCRIPT_NAME, page_id: WIP_PAGE_ID, page_symid: WIP_PAGE_SYMID },
				    evalScripts: true
			    });
			    break;
			case 68: // Alt+Ctrl+D - Logout
			    action = 'logout';
			    Effect.Appear($('wipinline_status'))
			    new Ajax.Updater($('wipinline_status'), '/tools/wip_v4/inline/ajax/wip_admin_login.epl', {
				    parameters: { div: 'wipinline_status', id: fdat.id, cid: fdat.cid, kid: fdat.kid, q: fdat.q, md5:fdat.md5, href: document.location.href, script_name: SCRIPT_NAME, page_id: WIP_PAGE_ID, page_symid: WIP_PAGE_SYMID },
				    evalScripts: true
			    });
			    break;
			case 69: // Alt+Ctrl+E - Edit
			    action = 'edit';
			    Effect.Appear($('wipinline_status'))
			    new Ajax.Updater($('wipinline_status'), '/tools/wip_v4/inline/ajax/wip_article_edit.epl', {
				    parameters: { div: 'wipinline_status', id: fdat.id, cid: fdat.cid, kid: fdat.kid, q: fdat.q, md5:fdat.md5, href: document.location.href, script_name: SCRIPT_NAME, page_id: WIP_PAGE_ID, page_symid: WIP_PAGE_SYMID },
				    evalScripts: true
			    });
			    break;
			case 78: // Alt+Ctrl+N - New
			    action = 'new';
			    Effect.Appear($('wipinline_status'))
			    new Ajax.Updater($('wipinline_status'), '/tools/wip_v4/inline/ajax/wip_article_edit.epl', {
				    parameters: { div: 'wipinline_status', id: fdat.id, cid: fdat.cid, kid: fdat.kid, q: fdat.q, md5:fdat.md5, newart: '1', href: document.location.href, script_name: SCRIPT_NAME, page_id: WIP_PAGE_ID, page_symid: WIP_PAGE_SYMID },
				    evalScripts: true
			    });
			    break;
			case 84: // Alt+Ctrl+T - Twitter
			    action = 'twitter';
			    Effect.Appear($('wipinline_status'))
			    new Ajax.Updater($('wipinline_status'), '/tools/wip_v4/inline/ajax/wip_tweet_this.epl', {
				    parameters: { div: 'wipinline_status', id: fdat.id, cid: fdat.cid, kid: fdat.kid, q: fdat.q, md5:fdat.md5, href: document.location.href, script_name: SCRIPT_NAME, page_id: WIP_PAGE_ID, page_symid: WIP_PAGE_SYMID },
				    evalScripts: true
			    });
			    break;
			case 83: // Alt+Ctrl+S - Live stats
			    action = 'livestats';
			    Effect.Appear($('wipinline_status'))
			    new Ajax.Updater($('wipinline_status'), '/tools/wip_v4/inline/ajax/wip_live_stats.epl', {
				    parameters: { div: 'wipinline_status', id: fdat.id, cid: fdat.cid, kid: fdat.kid, q: fdat.q, md5:fdat.md5, href: document.location.href, script_name: SCRIPT_NAME, page_id: WIP_PAGE_ID, page_symid: WIP_PAGE_SYMID },
				    evalScripts: true
			    });
			    break;
			case 87: // Alt+Ctrl+W - Close popup
			    action = 'close';
			    timer = setTimeout("Effect.Fade($('wipinline_status'))", 2000);
			    break;
			default:
			    //$('wipinline_status').update('<div style="display: block;" id="wipinline_popup" class="wipinline_popup">' + 'Keypress: Character was "' + character + '", code is "' + code + '"' + ', action is: "' + action + '" alt: '+altDown+' ctrl: '+ctrlDown+'</div>');
			    //$('wipinline_popup').fade.delay(3, {duration: 3});
			    //action = 'unknown';
			    break;
		    }

		}
	    });

    });

