function openNewPopup(url, w, h) {
    var _left = 200;
    var _top = 200;
    var _location = 'no';
    var _directories = 'no';
    var _menubar = 'no';
    var _resizable = 'no';
    var _scrollbars = 'no';
    var _status = 'no';
    var _titlebar = 'no';
    var _toolbar = 'no';
        
    window.popupWindow = window.open(url, '_blank', 'width='+w
        +', height='+h+',left='+_left+', top='+_top+', location='+_location
        +', directories='+_directories+', menubar='+_menubar
        +', resizable='+_resizable+', scrollbars='+_scrollbars
        +', status='+_status+', titlebar='+_titlebar+', toolbar='+_toolbar);
        
    return false;
}
function sendToReportErrorValidate(lang) {
    getValidatorInstance(lang);
    getLangInstance(lang);
    var email = oLang.getWord('emailAddress');
    var errorInfo = oLang.getWord('errorInfo');
    oValidator.add('email', email, oValidator.EMAIL);
    oValidator.add('errorInfo', errorInfo, oValidator.TEXT);
    return oValidator.validate();
}
function sendToFriendValidate(lang) {
    getValidatorInstance(lang);
    getLangInstance(lang);
    var _name = oLang.getWord('senderName');
    var semail = oLang.getWord('senderEmail');
    var email = oLang.getWord('destEmail');
    oValidator.add('name', _name);
    oValidator.add('email', semail, oValidator.EMAIL);
    oValidator.add('femail', email, oValidator.EMAIL);
    return oValidator.validate();
}
function contactValidate(lang) {
    getValidatorInstance(lang);
    getLangInstance(lang);
    var _name = oLang.getWord('name');
    var _email = oLang.getWord('email');
    var _msg = oLang.getWord('msg');
    oValidator.add('nume', _name);
    oValidator.add('email', _email, oValidator.EMAIL);
    oValidator.add('msg', _msg);
    return oValidator.validate();
}

if(!window.Validator) {
    window.Validator = function() {
        this.TEXT = 0;
        this.EMAIL = 1;
        this.lang = null;
        
        this.eEMAIL = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
        
        this.init = function(lang) {
            this.lang = getLangInstance(lang);
            this.elem = [];
        };
        
        this.add = function(elemId, elemName, elemType, add) {
            elemType = elemType ? elemType : this.TEXT;
            this.elem.push([]);
            var idx = this.elem.length-1;
            this.elem[idx].id = elemId;
            this.elem[idx].name = elemName;
            this.elem[idx].type = elemType;
        };
        this.validate = function() {
            var i=0;
            var elem = null;
            for(i; i<this.elem.length; i++) {
                elem = this.elem[i];
                var unspecified = this.lang.getWord('notSet');
                var invalid = this.lang.getWord('invalid');
                switch(elem.type) {
                    case this.EMAIL :
                        if(!$(elem.id).value.match(this.eEMAIL)) {
                            this.alert(elem.name + ' ' + invalid);
                            $(elem.id).focus();    
                            return false;
                        }
                        break;
                    default : 
                    if(!$(elem.id).value) {
                        this.alert(elem.name + ', ' + unspecified);
                        $(elem.id).focus();
                        return false;
                    }
                }
            }
        };
        this.alert = function(msg) {
            window.alert(msg);
        }
    }
};
if(!window.Lang) {
    window.Lang = function() {
        this.lang = 'ro';
        this.langSet = [];
        
        this.init = function(l) {
            this.setLang(l);
            this.langSet = window.langSet;
        }
        this.getWord = function(label) {
            if(this.langSet[label]) {
                return this.langSet[label];
            }
            return null;
        };
        
        this.setLang = function(l) {
            this.lang = l;
        };
    }
}
if(!window.Util) {
    window.Util = function() {
        this.getScreenXY = function(){
            var scr = [];
            scr[0] = screen.availWidth;
            scr[1] = screen.availHeight;
            return scr;
        };
        this.getScreenX = function() {
            return this.getScreenXY()[0];
        };
        this.getScreenY = function() {
            return this.getScreenXY()[1];
        };
        
        this.getWindowXY = function() {
            var win = [];
            win[0] = this.getScreenX - window.screenX;
            win[1] = this.getScreenY - window.screenY;
            return win;
        }
    }
}
function getUtilInstance() {
    if(!window.oUtil) {
        window.oUtil = new Util();
    }
    return window.oUtil;
}
function getLangInstance(lang) {
    if(!window.oLang) {
        window.oLang = new Lang();
        window.oLang.init(lang);
    }
    return window.oLang;
}
function getValidatorInstance(lang) {
    if(!window.oValidator) {
        window.oValidator = new Validator();
        window.oValidator.init(lang);
    }
    return window.oValidator;
}
function $(id) {
    return document.getElementById(id);
}

var txtVersion = "0.1";
var addtoInterval = null;
var popupWin = '';

function addtoWin(addtoFullURL)
{
	if (!popupWin.closed && popupWin.location){
		popupWin.location.href = addtoFullURL;
		var addtoInterval = setInterval("closeAddTo();",1000);
	}
	else{
		popupWin = window.open(addtoFullURL,'addtoPopUp','width=770px,height=500px,menubar=1,toolbar=1,status=1,location=1,resizable=1,scrollbars=1,left=0,top=100');
		var addtoInterval = setInterval("closeAddTo();",1000);
		if (!popupWin.opener) popupWin.opener = self;
	}
	if (window.focus) {popupWin.focus()}
	return false;
}
// closes the popupWin
function closeAddTo() {
	if (!popupWin.closed && popupWin.location){
		if (popupWin.location.href == AddURL)	//if it's the same url as what was bookmarked, close the win
		popupWin.close();
	}
	else {	//if it's closed - clear the timer
		clearInterval(addtoInterval)
		return true
	}
}


function addto(addsite){
	
	var addtoMethod=1;
	var AddURL = document.location.href;
	var AddTitle = escape(document.title);
	
	switch(addsite){
		case 1:	//	Blink ID:1
			var AddSite = "http://www.blinklist.com/index.php?Action=Blink/addblink.php";
			var AddUrlVar = "url";
			var AddTitleVar = "title";
			var AddNoteVar = "description";
			var AddReturnVar = "";
			var AddOtherVars = "&Action=Blink/addblink.php";	
			break
		case 2:	//	Del.icio.us	ID:2 &v=3&noui=yes&jump=close
			var AddSite = "http://del.icio.us/post?";
			var AddUrlVar = "url";
			var AddTitleVar = "title";
			var AddNoteVar = "";
			var AddReturnVar = "";
			var AddOtherVars = "";		
			break
		case 3:	//	Digg ID:3
			var AddSite = "http://digg.com/submit?";
			var AddUrlVar = "url";
			var AddTitleVar =  "";
			var AddNoteVar =  "";
			var AddReturnVar =  "";
			var AddOtherVars = "&phase=2";
			break
		case 4:	//	Furl ID:4
			var AddSite = "http://www.furl.net/storeIt.jsp?";
			var AddUrlVar = "u";
			var AddTitleVar = "t";
			var AddNoteVar = "";
			var AddReturnVar = "";
			var AddOtherVars = "";	
			break
		case 5:	//	GOOGLE ID:5
			var AddSite = "http://fusion.google.com/add?";
			var AddUrlVar = "feedurl";
			var AddTitleVar = "";
			var AddNoteVar = "";
			var AddReturnVar = "";
			var AddOtherVars = "";
			break
		case 6:	//	Simpy ID:6
			var AddSite = "http://simpy.com/simpy/LinkAdd.do?";
			var AddUrlVar = "href";
			var AddTitleVar = "title";
			var AddNoteVar = "note";
			var AddReturnVar = "_doneURI";
			var AddOtherVars = "&v=6&src=bookmarklet";
			break
		case 7:	//	Yahoo ID: 7
			var AddSite = "http://myweb2.search.yahoo.com/myresults/bookmarklet?";
			var AddUrlVar = "u";
			var AddTitleVar = "t";
			var AddNoteVar = "";
			var AddReturnVar = "";
			var AddOtherVars = "&d=&ei=UTF-8";
			break
		case 8:	//	Spurl ID: 8 	d.selection?d.selection.createRange().text:d.getSelection()
			var AddSite = "http://www.spurl.net/spurl.php?";
			var AddUrlVar = "url";
			var AddTitleVar = "title";
			var AddNoteVar = "blocked";
			var AddReturnVar = "";
			var AddOtherVars = "&v=3";
			break			
		default:
	}
//	Build the URL
	var addtoFullURL = AddSite + AddUrlVar + "=" + AddURL + "&" + AddTitleVar + "=" + AddTitle + AddOtherVars ;
	if (AddNoteVar != "") 
		{var addtoFullURL = addtoFullURL + "&" + AddNoteVar + "=" + AddTitle;}
	if (AddReturnVar != "")
		{var addtoFullURL = addtoFullURL + "&" + AddReturnVar + "=" + AddURL;}
//	Checking AddToMethod, to see if it opens in new window or not
	switch(addtoMethod){
		case 0:	// 0=direct link
			self.location = addtoFullURL
			break
		case 1:	// 1=popup
			addtoWin(addtoFullURL);
			break
		default:	
		}
		return true;
}
