q = new Array();
q['q1'] = new Array('85d5dc6df95c32ab0538989e674502e35665e0e5');
q['q2'] = new Array('8fcf6de9931af22b28744fc6e43a84683351362e');
q['q3'] = new Array('d9b7faa43f1b67e7cf2ab017c5a2fa5dfd8d0a1f');
q['q4'] = new Array('53f27c56f8317673890458d42ee3e5da61c5047d');
q['q5'] = new Array('8ec65ef4076fad3c9525702d9d8439d20ebec060');
q['q6'] = new Array('83a5f0f393204a51e18f3be54f590fc50dff5ad4');
q['q7'] = new Array('b28c1e89bcdccffd905ec5d3557602ad59866e60');
q['q8'] = new Array('74d99a4fe91ea2b932d55d47974438da3c16b24c');
q['q9'] = new Array('2a5c6097279010f328023b73d93b90175b2d7cf2');
q['q10'] = new Array('e18645e4f05b7dc57caebc0c9a9d27e3f891072c', '001ff404fefc6ae30d079fd8ea3461b35ff10f6a');
q['q11'] = new Array('7c34315cc85ffa308a3935e58e2dd0051b581c04');
q['q12'] = new Array('dc5452410f58eca0b4b7eed57174bf5244c7df96');
q['q13'] = new Array('61a5613f732f76cbf0c3aad508f05a8a1a2139c3');
q['q14'] = new Array('484cc0b1ca6f8f6291d4bb56c684075d8c6f64f1');
q['q15'] = new Array('3fcefac27a36641a0498fa4c6f2bf01ca8ed1af1');
q['q16'] = new Array('be0b92218e08a7b2bc593b788c05c66ebd8493b6');
q['q17'] = new Array('f44575c2981ddbc6eef7bd78bb886beb76446d86');
q['q18'] = new Array('223635cc4826daa8c28137d1aac40d61f24bf5bd');
q['q19'] = new Array('c05ec095f08ec745de8a83490808f82b01f021bb');
q['q20'] = new Array('9ee14451dad41148c175e551371a2092be4c5372');
q['q21'] = new Array('0707c9a0c9cad6ea46d7f4572cd74d28949f3261');
q['q22'] = new Array('a2a39e3548520d6df692bab94d967b94812a9ccc');
q['q23'] = new Array('e6e403369f3e875ae08e3a9dc9e05c25c8d5a762');
q['q24'] = new Array('1b3d61ac954dec24504a4b284790f68b04b78b03');
q['q25'] = new Array('ae5a0d6f3108d13f333a797624a7559d82ad95d4');
q['q26'] = new Array('ba3cafc2116d6dd27f94c875152f68fede5f9d41');
q['q27'] = new Array('d9b1807f2e62d8748ac8172d235dcff09f5a042c');
q['q28'] = new Array('67dbf915ffb39d5f0cbb2eea42abbdd21789610d');
q['q29'] = new Array('2fbbe7e461536ab631a4e580c5295ae83fb95224');
q['q30'] = new Array('b34523de4887c5a241cb1ce44378ed90c8db31c0');
q['q31'] = new Array('85161938a6acbe0c2d5c2dc49c8577785b301c06');
q['q32'] = new Array('efa62cc4186eff8d70b9734cbb24656a3f1cea65');
q['q33'] = new Array('962d64e22bc26c1bec8b3f56676b21b95fd56f37');
q['q34'] = new Array('2e4f36316f43e0950bd9f43ef89d4bcc4b7e67c5');
q['q35'] = new Array('859b2f7c4246cbbf110fe18e7ea286e445e36680');
q['q36'] = new Array('9967fcbdf43724db643569d83fcd67753dd26ec6');
q['q37'] = new Array('f0dc84f404b668d826e1044d8fed9b7e9c86afd4');
q['q38'] = new Array('2fdb78da2562a3d2a3de93ab5897823f7ff9933e');
q['q39'] = new Array('d628163349059b92ea4289e9e52c632b5e13ef72');
q['q40'] = new Array('2d4e1c92eac3ba153700018d7d7dbf0077be7a9a');
q['q41'] = new Array('7cf40e8fb0ae50655cb81ef8fbf1c57543015210');
q['q42'] = new Array('fbc379c514b19fb3011719d4a35dd1a0d86411ea');
q['q43'] = new Array('fd461a4f05e702192a35e31e520ac98b8e7325c8');
q['q44'] = new Array('32fe79b53713a651d2c4a8b60a1af2a9b704ff0c');
q['q45'] = new Array('fe36a7568b962d63942b658548929db331a15c99');
q['q46'] = new Array('48a6fa4bd5b9da78f30a0edad379c3397dc857a8');
q['q47'] = new Array('d96655be4d793d99cb45165535d31d088e2ef1fe');
q['q48'] = new Array('803255c20a739e28a813ba0fc7b511bb0d8bad27');
q['q49'] = new Array('f2fe60c746959d76d1002b7307b86dd27bac3a35');
q['q50'] = new Array('ddf485c238e731760032b534373b067ce7531979');
q['q51'] = new Array('ec7465702e0d15134580e5d30240574bd7809e23');
q['q52'] = new Array('ca595d3d6580433d1b5d86e0c589a3a3dc0b6c4e');
q['q53'] = new Array('55787b38752374884f914653d0db8e37bacecdb4');
q['q54'] = new Array('64d822b677eb1497c7243a8fecd57e3b93d7db3e');
q['q55'] = new Array('b16e83577131be09b414ade42275ee46a980cedf');
q['q56'] = new Array('cd3391cd0d850d520e98fc5025bb224a55c9f237');
q['q57'] = new Array('78d7b6238c2ceebcd964bdfc8b5f02a4e10cf9c9');
q['q58'] = new Array('7fce8f13cfb4d9d24e0442f18e146deea0b09524');
q['q59'] = new Array('e4efda23c41889c3a9100d000e1d1859ef6f51f2');
q['q60'] = new Array('26fa441b8aa9e16c34d8b27b293cb9fa513032ac');
q['q61'] = new Array('65f525805a636e1fe0ece7d6e7443c7b5f8b8406');
q['q62'] = new Array('2395e9a38eba5e44ab80118687a550466684e530');
q['q63'] = new Array('c9ee5681d3c59f7541c27a38b67edf46259e187b');
q['q64'] = new Array('fd784b414db5e9588496cc3fa4aa4517b2c5c919');
q['q65'] = new Array('cc87bb09e8987e3c97dd7fe01e72b5239e2674ce');
q['q66'] = new Array('40bb572e45597bde80252dd1d823b79a859a92f8');
q['q67'] = new Array('d4ded5975ef6a5e6a6f9534b79ae50c821f2269c');
q['q68'] = new Array('a99c1b77c10a50d56afb391412aecdd23d700318');
q['q69'] = new Array('0dbd7fe108235c9f3162fff146d0480590c4232c');
q['q70'] = new Array('92f079191e636badcbcce7df09a9fca0ce648cde');
q['q71'] = new Array('9bcaabc9add5c6337d5057b202315329501703d1');
q['q72'] = new Array('c83c4d6668768fcab08fe0496e1e43403c61cf75');
q['q73'] = new Array('d84470ae13b5dd1fa4696805750a9e66013a5e8d');
q['q74'] = new Array('68668b0e9c0b3b5c04f4e480cacfe45f5d73a1fe');
q['q75'] = new Array('bc1ae9086847f4ca5bfe0500591b4f8ceb8d6058');
q['q76'] = new Array('5a6c983070840cc665acb55441ffba84f811cfd8');
q['q77'] = new Array('6db721fbfedd2f36062b4c66b9201f9cde96177d');
q['q78'] = new Array('0b1d2aa8154cd29210f278848db0fa76b54b52a8');
q['q79'] = new Array('202f7dac4aed74333eb8c0e8facd29a72660d78a');
q['q80'] = new Array('e28fcbf5d31a749f5da073a84655a4cefe0a0bc3');
q['q81'] = new Array('f89ed60e4698d6d3c29ef94603bd3ac34a762854');
q['q82'] = new Array('2cea2246563602570ffcafecdcbac2b9a96259cb');
q['q83'] = new Array('4a33c75eb00a19bce9a4c292338950c0d52c5b71');
q['q84'] = new Array('48d837fca857aafc5502e26da0f94081c8b07380');
q['q85'] = new Array('522d39c19f9f69dc214fae992bf54ae4f5f0c8a9');
q['q86'] = new Array('352a7291c16ce9215c56c97d6eeef19bb4411d92');
q['q87'] = new Array('d3f49e0621a0e9214e2c617b1fde2665ce27229d');
q['q88'] = new Array('a9eabb52d3ee6c9563a186e9bc9d4f7eff9fbb6b');
q['q89'] = new Array('772b945f008b41fbf6963cf969be47754e064d68');
q['q90'] = new Array('15f4fe303fd44978457719960e84c1c3b262a9f6');
q['q91'] = new Array('a05f1cc3f5bb984459a3ce7701ba93c55f35d9d0');
q['q92'] = new Array('f313cd8363ceb251d1a286baf1fe9127ff43a2ee');
q['q93'] = new Array('b9e44e0eaaa9a57674586dae83681fb4c8a79986', '3c6d7c8c54fa78a022e5fb1e7b8d9d1eae731a51');
q['q94'] = new Array('26dc9e206f30981acc4b8ad8d6382bbcd639bb12');
q['q95'] = new Array('93fe68994219bdfdb8b1dd01cbcfed2fb6338933');
q['q96'] = new Array('253b45c624f54c8b6a6dc0dd2e58aa23200cbaf6');
q['q97'] = new Array('52c3d3db1493cfb26495cb315fad47d0d71b42cb');
q['q98'] = new Array('a86a4420def837e166cf91baa7593874b852c0dc');
q['q99'] = new Array('dfd100ca2afc644dd56b7aac5b5d79d2d3d09863');
q['q100'] = new Array('ae56febc70474c38b411244a9b97f7c0586b62ea');
q['q101'] = new Array('27e09920d2b12074edaa88011e2b13cbe38b2e72', '34254edd9602019573f729f867a45a7ab4bd13bb');
q['q102'] = new Array('6664b0cd0f7d707184b4c3227ce53aa29786d26f');
q['q103'] = new Array('ba072820e0b16b72737c88320403d8484b9cadcf');
q['q104'] = new Array('41754f361aad550f61191807f9329c47f462991f');
q['q105'] = new Array('2933dd49bfa64e90a59237282b2a803618936f9d');
q['q106'] = new Array('a73541481028ce1f7b0479afcf6272c0c11fd18e', '454f716cd23934f98637645c5c804e07fd0949e1');
q['q107'] = new Array('ae23006d639d7a4b7015617f33a9c81d9fc1ca98');
q['q108'] = new Array('22158853719ceab68292f03ee5d2e0428953021c');
q['q109'] = new Array('0f012e20d1bcfc8a055df091fce3bc5e847f4fad');
q['q110'] = new Array('904b63e000140af3bc536e7de18b999d00a15ec8');
q['q111'] = new Array('456d9734b783bfb242b502134105e7dbe9eddd2a');
q['q112'] = new Array('25393c85b8ac8454627a8a9147649766e3555a0e');
q['q113'] = new Array('93bc96317bf729248ba0ecb39c68a193dcd57997');
q['q114'] = new Array('b00aa579065923c1a7a2911c9da806c2665a20f9');
q['q115'] = new Array('effe6449c5914471d6068292df513b9967e6ddeb');
q['q116'] = new Array('126c0d55be2749032eff48545fbdfe2cd7cd0eaa');
q['q117'] = new Array('6d3932f1602bd58fd867145fce0227d0b681fc0f');
q['q118'] = new Array('8c0933092de4d45d03fa154f2a9f6007ce7be815');
q['q119'] = new Array('e5b3ba66ab14560a993cfbb9a09582891b4b30b4', 'c9ebd9cba394b4c6447006dfd113a85a42bbedc3');
q['q120'] = new Array('80f4b83b68cdc9317ca71f8f380066038dd420ba');
q['q121'] = new Array('04fc0a3042ccebb09c1dd85407ff650ef3674e25');
q['q122'] = new Array('f4deea8a43c2bb5ffe1b23ca28e3f8a6618a3f9a');
q['q123'] = new Array('aaca8f7b17059cadccad34939c5cc74ca21338b3');
q['q124'] = new Array('3ecc70e50dd8cf52d97e23f865a86473aa8eba42');
q['q125'] = new Array('5adb6b2c733ed03518d0a52e7d17667d3ebbd5c7');
q['q126'] = new Array('51eab2d82459c40b3fca40521263e4118dcb98a4');
q['q127'] = new Array('00ee7eee7e6141b3c17c4bb0f56b2818f60063c4');
q['q128'] = new Array('7620c4c296ea6f9b15e8a268d0eff6a3d6d22e33');
q['q129'] = new Array('c705571c4cd1435bdb9b185ae7a98f39e249019b');
q['q130'] = new Array('ada7b9bcd5cd96c7e8311e2f44e3e4a13d2eeb1a');
q['q131'] = new Array('43db27aa3b3c3e0e2667a1eadb8b1e9c36961bc4');
q['q132'] = new Array('44d87192bf2b97c3caa0888d708a2a62d4f01588');
q['q133'] = new Array('27a993359f27a3d2d08e54d3bf08a3723a21211f', '03a4d4c199d6c12afeef4b69d936d57b2aae5ca9');
q['q134'] = new Array('492415ea9e552742df043d9a5f9b982765d2214b');
q['q135'] = new Array('1ccabbae39cff02736c5d88cc6400c85d706dc67');
q['q136'] = new Array('da14ff9bb4436f92248e8f4d1cbcd3e147c65848');
q['q137'] = new Array('898d5f49749d4cce25967e3641922f63e30ca3fb');
q['q138'] = new Array('fbd7ac5c6ce90f065c621772166ec0f1c270287c');
q['q139'] = new Array('fa1f200e342ebb7a123134cbf7b5d41c046f1033');
q['q140'] = new Array('adb66d73b54d47214627780593c30afc341e582a');
q['q141'] = new Array('3e3743de4579d899039e8a780cd9e31479769455');
q['q142'] = new Array('b8427cdbce488c8b3397e9221aabbe322275dc9e');
q['q143'] = new Array('ed9d7ddda73777fbf34488a236cef87a8fdf7fb6');
q['q144'] = new Array('8321096e1705a7d92a46c3c0054b29b74505bdf1', 'dd80758379227c9c1d84ff89c3ae8d69b5e11880');
q['q145'] = new Array('12d43b552d4e71ab70d05c315b25f92e9842a699');
q['q146'] = new Array('f29b268c493e486b7752244d5e0ab11b6813b6cc');
q['q147'] = new Array('891889e1e5bf6ba2df8a114647d650da3e799028');
q['q148'] = new Array('deeddfd8f8a7067ec0d6b4701e2df6df5056d088');
q['q149'] = new Array('fe342cfcef07901400c80dd9fcc7831e7ea1108e');
q['q150'] = new Array('76b02ce423acb6eb7e6ce6a0be32470309604878');
 

function simplifica(msg) {
	
	var str=msg.toUpperCase();
	str=str.replace(/ /g,'');			
	str=str.replace(/\,/g,'');			
	str=str.replace(/\./g,'');			
	str=str.replace(/\-/g,'');			
	str=str.replace(/\'/g,'');			
	str=str.replace(/\:/g,'');			
	str=str.replace(/\(/g,'');			
	str=str.replace(/\)/g,'');	
	str=str.replace(/\?/g,'');			
	str=str.replace(/\¿/g,'');			
	str=str.replace(/\!/g,'');			
	str=str.replace(/\¡/g,'');							
	str=str.replace(/Á/g,'A');
	str=str.replace(/É/g,'E');
	str=str.replace(/Í/g,'I');
	str=str.replace(/Ó/g,'O');
	str=str.replace(/Ú/g,'U');
	
	
	return str;
	
}  


function mirar(str) {

var ok=0;
for (x in q[str])
{
	if(sha1Hash(simplifica(document.getElementById(str).value)) == (q[str][x]) 	)
	{
		
		ok=1;
	}
}  


	if(ok)
	{
		validar1(str);
	}
	else
	{
		validar2(str);
	}
	
}

function carga() { 
	
	for (var i=1; i<=150; i++) {		
		str='q'+i;	
		document.getElementById(str).style.border = '1px solid #A5ACB2';
		document.getElementById(str).disabled = false;

		/*str='q'+i+'b';	
		document.getElementById(str).style.border = '1px solid #A5ACB2';
		document.getElementById(str).disabled = false;*/
		
	} 
} 


function validar1(qstr) { 
	if(document.getElementById(qstr).disabled == false) {
	document.getElementById(qstr).disabled = true;
	document.getElementById(qstr).style.border = '2px solid #00FF00'; 
	document.getElementById('correct').innerHTML = document.getElementById('correct').innerHTML*1 + 1;
	}
}

function validar2(qstr) {
	if(document.getElementById(qstr).value=='') {
		document.getElementById(qstr).style.border = '1px solid #A5ACB2'; 
	}
	else
	{
	document.getElementById(qstr).style.border = '2px solid #FF0000'; 
	}
}


function sha1Hash(msg)
{
    // constants [4.2.1]
    var K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6];

    // PREPROCESSING 
 
    msg += String.fromCharCode(0x80);  // add trailing '1' bit to string [5.1.1]

    // convert string msg into 512-bit/16-integer blocks arrays of ints [5.2.1]
    var l = Math.ceil(msg.length/4) + 2;  // long enough to contain msg plus 2-word length
    var N = Math.ceil(l/16);              // in N 16-int blocks
    var M = new Array(N);

    for (var i=0; i<N; i++) {
        M[i] = new Array(16);
        for (var j=0; j<16; j++) {  // encode 4 chars per integer, big-endian encoding
            M[i][j] = (msg.charCodeAt(i*64+j*4)<<24) | (msg.charCodeAt(i*64+j*4+1)<<16) | 
                      (msg.charCodeAt(i*64+j*4+2)<<8) | (msg.charCodeAt(i*64+j*4+3));
        } // note running off the end of msg is ok 'cos bitwise ops on NaN return 0
    }
    // add length (in bits) into final pair of 32-bit integers (big-endian) [5.1.1]
    M[N-1][14] = ((msg.length-1) >>> 30) * 8;
    M[N-1][15] = ((msg.length-1)*8) & 0xffffffff;

    // set initial hash value [5.3.1]
    var H0 = 0x67452301;
    var H1 = 0xefcdab89;
    var H2 = 0x98badcfe;
    var H3 = 0x10325476;
    var H4 = 0xc3d2e1f0;

    // HASH COMPUTATION [6.1.2]

    var W = new Array(80); var a, b, c, d, e;
    for (var i=0; i<N; i++) {

        // 1 - prepare message schedule 'W'
        for (var t=0;  t<16; t++) W[t] = M[i][t];
        for (var t=16; t<80; t++) W[t] = ROTL(W[t-3] ^ W[t-8] ^ W[t-14] ^ W[t-16], 1);

        // 2 - initialise five working variables a, b, c, d, e with previous hash value
        a = H0; b = H1; c = H2; d = H3; e = H4;

        // 3 - main loop
        for (var t=0; t<80; t++) {
            var s = Math.floor(t/20); // seq for blocks of 'f' functions and 'K' constants
            var T = (ROTL(a,5) + f(s,b,c,d) + e + K[s] + W[t]) & 0xffffffff;
            e = d;
            d = c;
            c = ROTL(b, 30);
            b = a;
            a = T;
        }

        // 4 - compute the new intermediate hash value
        H0 = (H0+a) & 0xffffffff;  // note 'addition modulo 2^32'
        H1 = (H1+b) & 0xffffffff; 
        H2 = (H2+c) & 0xffffffff; 
        H3 = (H3+d) & 0xffffffff; 
        H4 = (H4+e) & 0xffffffff;
    }

    return H0.toHexStr() + H1.toHexStr() + H2.toHexStr() + H3.toHexStr() + H4.toHexStr();
}

//
// function 'f' [4.1.1]
//
function f(s, x, y, z) 
{
    switch (s) {
    case 0: return (x & y) ^ (~x & z);
    case 1: return x ^ y ^ z;
    case 2: return (x & y) ^ (x & z) ^ (y & z);
    case 3: return x ^ y ^ z;
    }
}

//
// rotate left (circular left shift) value x by n positions [3.2.5]
//
function ROTL(x, n)
{
    return (x<<n) | (x>>>(32-n));
}

//
// extend Number class with a tailored hex-string method 
//   (note toString(16) is implementation-dependant, and  
//   in IE returns signed numbers when used on full words)
//
Number.prototype.toHexStr = function()
{
    var s="", v;
    for (var i=7; i>=0; i--) { v = (this>>>(i*4)) & 0xf; s += v.toString(16); }
    return s;
}
function resetForm() {
	
	for(i=1;i<=150;i++) {
	document.getElementById('q'+i).disabled = false;
	
	/*document.getElementById('q'+i+'b').disabled = false;*/
	}
	document.forms[0].reset();
}